<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Baserow 1.9 and it&#x27;s Dockerfile and packaging changes]]></title><description><![CDATA[<p dir="auto">Hey all,</p>
<p dir="auto">I'm a dev working at Baserow and am currently reworking our Docker / CI for the next version of Baserow 1.9 which is not yet released. As part of this we will be providing a new Dockerhub <code>baserow/baserow</code> image which runs Baserow and all of it's services in one container. We are also hoping to change our cloudron image we provide and support (<a href="https://gitlab.com/bramw/baserow/-/blob/develop/deploy/cloudron/Dockerfile" target="_blank" rel="noopener noreferrer nofollow ugc">https://gitlab.com/bramw/baserow/-/blob/develop/deploy/cloudron/Dockerfile</a>) to instead build from and be a slight variation of this new <code>baserow/baserow</code> image.</p>
<p dir="auto">I do not believe that these changes if they happen will break the cloudron packaged Baserow at <a href="https://git.cloudron.io/cloudron/baserow-app" target="_blank" rel="noopener noreferrer nofollow ugc">https://git.cloudron.io/cloudron/baserow-app</a>, and it could simply bump its Baserow version to 1.9 to release successfully.</p>
<p dir="auto">However this raises some questions about  <a href="https://git.cloudron.io/cloudron/baserow-app" target="_blank" rel="noopener noreferrer nofollow ugc">https://git.cloudron.io/cloudron/baserow-app</a> which atm is a copy and slight edit of our own image. If we were to change our <code>cloudron</code> image to be a variation of the <code>baserow/baserow</code> image instead then our cloudron and the cloudron images would differ as follows:</p>
<ul>
<li>The base image we are building from is ultimately <code>debian:buster-slim</code>, where-as <code>cloudron-base</code> is <code>ubuntu:focal</code></li>
<li>Our new <code>baserow/baserow</code> image:
<ul>
<li>Has new <code>supervisord</code> setup files and related bash scripts used as entrypoints etc.</li>
<li>Now uses Caddy instead of nginx</li>
<li>Removes the service <code>mjml</code></li>
</ul>
</li>
<li>Our new <code>baserow/baserow</code> image sets up exactly the correct versions of node, psql, redis, python etcetc we support. In contrast currently the cloudron base image 3.0.0 uses node 14 and 3.2.0 node 16 which we don't yet support for Baserow.</li>
<li>The <code>baserow/baserow</code> image only installs dependencies required to run Baserow, compared with using <code>cloudron/base</code> which installs a number of other dependencies not required for Baserow etc.</li>
</ul>
<h2>Options</h2>
<p dir="auto">From what I can tell these are our options:</p>
<ol>
<li>We go ahead with the changes above to the Baserow provided cloudron image, no changes other than a version bump are made to the Cloudron Baserow image. As a result we end up with two quite different ways of packaging Baserow for Cloudron. Additionally the cloudron way still has the now unused mjml service and future changes to the Baserow services will make upgrading harder.</li>
<li>We go ahead with the Baserow side of the changes, and we also change how Cloudron packages Baserow to be identical (the Docker image becomes)</li>
</ol>
<pre><code class="language-Dockerfile">ARG FROM_IMAGE=baserow/baserow:1.9
FROM $FROM_IMAGE as image_base

ENV DATA_DIR=/app/data/

RUN apt-get remove -y postgresql postgresql-contrib

# TODO copy over the deploy/cloudron/cloudron_env.sh to the cloudron baserow repo, remove all of the other setup files which now
# just come baked into baserow/baserow:1.9
COPY deploy/cloudron/cloudron_env.sh /baserow/supervisor/env/cloudron_env.sh
</code></pre>
<ol start="3">
<li>We go with some sort of hybrid multi-stage image in the cloudron repo, which copies relevant parts from <code>baserow/baserow:1.9</code> but is still built based <code>FROM cloudron/base:3.0.0</code>, which would look something like (i've cut out some setup sections):</li>
</ol>
<pre><code>ARG FROM_IMAGE=baserow/baserow:1.9
FROM $FROM_IMAGE as image_base
FROM cloudron/base:3.0.0@sha256:455c70428723e3a823198c57472785437eb6eab082e79b3ff04ea584faf46e92

ENV DOCKER_USER=cloudron
ENV DATA_DIR=/app/data

# VARIOUS APT-GET / REDIS SETUP STEPS ETC

# ========================
# = BASEROW
# ========================
COPY --chown=cloudron:cloudron --from=image_base /baserow/ /baserow/
# The copy above will have chowned the supervisor folder to cloudron user when it should
# be root.
RUN chown -R root:root /baserow/supervisor
# Virtualenvs are not portable and especially not so between image_base which is debian
# and focal (cloudron/base). We install our python venv here instead.
RUN rm /baserow/venv -rf &amp;&amp; \
   python3 -m pip install --no-cache-dir --no-warn-script-location --disable-pip-version-check --upgrade pip==22.0.3 &amp;&amp; \
   python3 -m pip install --no-cache-dir --no-warn-script-location --upgrade virtualenv==20.13.1 &amp;&amp; \
   python3 -m virtualenv /baserow/venv
# hadolint ignore=SC1091
RUN . /baserow/venv/bin/activate &amp;&amp; pip3 install --no-cache-dir -r /baserow/backend/requirements/base.txt

RUN cd /baserow/web-frontend &amp;&amp; yarn install &amp;&amp; yarn build &amp;&amp; chown cloudron: -R /baserow/web-frontend/

COPY deploy/cloudron/cloudron_env.sh /baserow/supervisor/env/cloudron_env.sh
COPY deploy/all-in-one/baserow.sh /baserow.sh

ENTRYPOINT ["/baserow.sh"]
CMD ["start"]
</code></pre>
<ol start="4">
<li>We (Baserow) delete our own separate cloudron image and we entirely switch to using <a href="https://git.cloudron.io/cloudron/baserow-app" target="_blank" rel="noopener noreferrer nofollow ugc">https://git.cloudron.io/cloudron/baserow-app</a> . Additionally we could then pick one of the 3 options above and apply them to the cloudron baserow repo.</li>
</ol>
<p dir="auto">From Baserow's perspective of keeping our various Dockerfiles simple and easy to maintain option 2 would be our preferred one. My understanding is that as long as the Docker image running on cloudron follows a few conventions (put data in /app/data being the main one) then it should work correctly.</p>
<p dir="auto">I'd love to get ideas and feedback from you guys on this. I'm also happy to help contributing any of the above changes to the cloudron baserow repo.</p>
<p dir="auto">Thanks!</p>
]]></description><link>https://forum.cloudron.io/topic/6554/baserow-1-9-and-it-s-dockerfile-and-packaging-changes</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 02:43:37 GMT</lastBuildDate><atom:link href="https://forum.cloudron.io/topic/6554.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 24 Feb 2022 13:09:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Tue, 26 Apr 2022 09:40:39 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/nebulon" aria-label="Profile: nebulon">@<bdi>nebulon</bdi></a> thanks for doing this (delay not a problem, and not really much of one <img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f44d.png?v=223f9defb2f" class="not-responsive emoji emoji-android emoji--+1" style="height:23px;width:auto;vertical-align:middle" title=":+1:" alt="👍" /> )</p>
]]></description><link>https://forum.cloudron.io/post/46658</link><guid isPermaLink="true">https://forum.cloudron.io/post/46658</guid><dc:creator><![CDATA[timconsidine]]></dc:creator><pubDate>Tue, 26 Apr 2022 09:40:39 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Tue, 26 Apr 2022 09:05:45 GMT]]></title><description><![CDATA[<p dir="auto">Finally Baserow 1.9 got out as a package. Apologies for the huge delay here, we will try to get this up to speed in the future like for other packages. Thanks <a class="plugin-mentions-user plugin-mentions-a" href="/user/nigel_baserow" aria-label="Profile: nigel_baserow">@<bdi>nigel_baserow</bdi></a> and <a class="plugin-mentions-user plugin-mentions-a" href="/user/brutalbirdie" aria-label="Profile: BrutalBirdie">@<bdi>BrutalBirdie</bdi></a> for the help!</p>
]]></description><link>https://forum.cloudron.io/post/46654</link><guid isPermaLink="true">https://forum.cloudron.io/post/46654</guid><dc:creator><![CDATA[nebulon]]></dc:creator><pubDate>Tue, 26 Apr 2022 09:05:45 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Mon, 25 Apr 2022 12:58:36 GMT]]></title><description><![CDATA[<p dir="auto">ah that makes much sense. I also tried to export the env vars in the <a href="http://start.sh" target="_blank" rel="noopener noreferrer nofollow ugc">start.sh</a> to make sure it wasn't some supervisor thing, but I exported them too late!</p>
]]></description><link>https://forum.cloudron.io/post/46595</link><guid isPermaLink="true">https://forum.cloudron.io/post/46595</guid><dc:creator><![CDATA[nebulon]]></dc:creator><pubDate>Mon, 25 Apr 2022 12:58:36 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Mon, 25 Apr 2022 10:11:15 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/nigel_baserow" aria-label="Profile: nigel_baserow">@<bdi>nigel_baserow</bdi></a> I tried applying these patches but a normal <code>git apply this.patch</code> resulted in some errors.<br />
I cleanup up the diffs and split them up. (It seems the intellij version does not work nicely with git)</p>
<pre><code>diff --git a/supervisor.conf b/supervisor.conf
--- a/supervisor.conf	(revision 825192ff012217ba76f726de16cd7a5cc5ade91f)
+++ b/supervisor.conf	(date 1650878179553)
@@ -2,14 +2,6 @@
 nodaemon = true
 logfile=/dev/null
 logfile_maxbytes=0
-environment =
-    DJANGO_SETTINGS_MODULE='cloudron.settings',
-    REDIS_HOST='%(ENV_CLOUDRON_REDIS_HOST)s',
-    REDIS_PORT='%(ENV_CLOUDRON_REDIS_PORT)s',
-    REDIS_PASSWORD='%(ENV_CLOUDRON_REDIS_PASSWORD)s',
-    PRIVATE_BACKEND_URL='http://localhost:8000',
-    PUBLIC_WEB_FRONTEND_URL='https://%(ENV_CLOUDRON_APP_DOMAIN)s',
-    PUBLIC_BACKEND_URL='https://%(ENV_CLOUDRON_APP_DOMAIN)s'
 
 [program:gunicorn]
 user=cloudron

</code></pre>
<pre><code>diff --git a/start.sh b/start.sh
--- a/start.sh	(revision 825192ff012217ba76f726de16cd7a5cc5ade91f)
+++ b/start.sh	(date 1650878843914)
@@ -7,11 +7,19 @@
 fi
 source /app/data/.secret
 
+export REDIS_HOST="$CLOUDRON_REDIS_HOST"
+export REDIS_PORT="$CLOUDRON_REDIS_PORT"
+export REDIS_PASSWORD="$CLOUDRON_REDIS_PASSWORD"
+export DJANGO_SETTINGS_MODULE="cloudron.settings"
+export PRIVATE_BACKEND_URL="http://localhost:8000"
+export PUBLIC_WEB_FRONTEND_URL="https://$CLOUDRON_APP_DOMAIN"
+export PUBLIC_BACKEND_URL="https://$CLOUDRON_APP_DOMAIN"
+
 echo "==&gt; Executing database migrations"
-/app/code/env/bin/python /app/code/backend/src/baserow/manage.py migrate --settings=cloudron.settings
+/app/code/env/bin/python /app/code/backend/src/baserow/manage.py migrate
 
 echo "==&gt; Syncing templates"
-/app/code/env/bin/python /app/code/backend/src/baserow/manage.py sync_templates --settings=cloudron.settings
+/app/code/env/bin/python /app/code/backend/src/baserow/manage.py sync_templates
 
 chown -R cloudron:cloudron /app/data

</code></pre>
<hr />
<p dir="auto">Currently building and testing.</p>
]]></description><link>https://forum.cloudron.io/post/46592</link><guid isPermaLink="true">https://forum.cloudron.io/post/46592</guid><dc:creator><![CDATA[BrutalBirdie]]></dc:creator><pubDate>Mon, 25 Apr 2022 10:11:15 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Mon, 25 Apr 2022 09:31:59 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/nebulon" aria-label="Profile: nebulon">@<bdi>nebulon</bdi></a> Figured out the problem!</p>
<p dir="auto">In <code>start.sh</code> we are calling <code>migrate</code> and <code>sync_templates</code> before we have setup the REDIS_HOST etc env variables from the CLOUDRON_ ones. These commands are the ones you are seeing failing to connect to redis and not the actual backend processes of Baserow. Previously in version 1.8 and prior these commands did not connect to redis. Now they do (they clear some cached data from redis which potentially becomes invalid on Baserow upgrade/database changes).</p>
<p dir="auto">Below is a patch where i've entirely removed the supervisor.conf <code>environment</code> section and just moved those variables setup into <code>start.sh</code> prior to any command usage. This way we can be sure the management commands run with the same and correct environment as the actual supervisord run processes.</p>
<pre><code>Index: supervisor.conf
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
&lt;+&gt;UTF-8
===================================================================
diff --git a/supervisor.conf b/supervisor.conf
--- a/supervisor.conf	(revision 825192ff012217ba76f726de16cd7a5cc5ade91f)
+++ b/supervisor.conf	(date 1650878179553)
@@ -2,14 +2,6 @@
 nodaemon = true
 logfile=/dev/null
 logfile_maxbytes=0
-environment =
-    DJANGO_SETTINGS_MODULE='cloudron.settings',
-    REDIS_HOST='%(ENV_CLOUDRON_REDIS_HOST)s',
-    REDIS_PORT='%(ENV_CLOUDRON_REDIS_PORT)s',
-    REDIS_PASSWORD='%(ENV_CLOUDRON_REDIS_PASSWORD)s',
-    PRIVATE_BACKEND_URL='http://localhost:8000',
-    PUBLIC_WEB_FRONTEND_URL='https://%(ENV_CLOUDRON_APP_DOMAIN)s',
-    PUBLIC_BACKEND_URL='https://%(ENV_CLOUDRON_APP_DOMAIN)s'
 
 [program:gunicorn]
 user=cloudron
Index: start.sh
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
&lt;+&gt;UTF-8
===================================================================
diff --git a/start.sh b/start.sh
--- a/start.sh	(revision 825192ff012217ba76f726de16cd7a5cc5ade91f)
+++ b/start.sh	(date 1650878843914)
@@ -7,11 +7,19 @@
 fi
 source /app/data/.secret
 
+export REDIS_HOST="$CLOUDRON_REDIS_HOST"
+export REDIS_PORT="$CLOUDRON_REDIS_PORT"
+export REDIS_PASSWORD="$CLOUDRON_REDIS_PASSWORD"
+export DJANGO_SETTINGS_MODULE="cloudron.settings"
+export PRIVATE_BACKEND_URL="http://localhost:8000"
+export PUBLIC_WEB_FRONTEND_URL="https://$CLOUDRON_APP_DOMAIN"
+export PUBLIC_BACKEND_URL="https://$CLOUDRON_APP_DOMAIN"
+
 echo "==&gt; Executing database migrations"
-/app/code/env/bin/python /app/code/backend/src/baserow/manage.py migrate --settings=cloudron.settings
+/app/code/env/bin/python /app/code/backend/src/baserow/manage.py migrate
 
 echo "==&gt; Syncing templates"
-/app/code/env/bin/python /app/code/backend/src/baserow/manage.py sync_templates --settings=cloudron.settings
+/app/code/env/bin/python /app/code/backend/src/baserow/manage.py sync_templates
 
 chown -R cloudron:cloudron /app/data

</code></pre>
<p dir="auto">With these changes I can now startup this image and it all works for me locally.</p>
]]></description><link>https://forum.cloudron.io/post/46591</link><guid isPermaLink="true">https://forum.cloudron.io/post/46591</guid><dc:creator><![CDATA[nigel_baserow]]></dc:creator><pubDate>Mon, 25 Apr 2022 09:31:59 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Sat, 23 Apr 2022 09:23:36 GMT]]></title><description><![CDATA[<p dir="auto">Hm clearly the env vars are not somehow translated looking at <a href="https://github.com/bram2w/baserow/blob/e1dd374010de5d7870f5e02503a5ed4dfa6bed19/backend/src/baserow/config/settings/base.py" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/bram2w/baserow/blob/e1dd374010de5d7870f5e02503a5ed4dfa6bed19/backend/src/baserow/config/settings/base.py</a></p>
<p dir="auto">Something off with forwarding the environment it seems.</p>
]]></description><link>https://forum.cloudron.io/post/46512</link><guid isPermaLink="true">https://forum.cloudron.io/post/46512</guid><dc:creator><![CDATA[nebulon]]></dc:creator><pubDate>Sat, 23 Apr 2022 09:23:36 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Fri, 22 Apr 2022 22:30:37 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/nigel_baserow" aria-label="Profile: nigel_baserow">@<bdi>nigel_baserow</bdi></a> thanks for the hints. I have tried the url as env variable but also even hardcoded the env vars to match yours without success.<br />
The error remains:</p>
<pre><code>Clearing Baserow's internal generated model cache...
Traceback (most recent call last):
  File "/app/code/env/lib/python3.8/site-packages/django_redis/cache.py", line 31, in _decorator
    return method(self, *args, **kwargs)
  File "/app/code/env/lib/python3.8/site-packages/django_redis/cache.py", line 117, in clear
    return self.client.clear()
  File "/app/code/env/lib/python3.8/site-packages/django_redis/client/default.py", line 434, in clear
    raise ConnectionInterrupted(connection=client) from e
django_redis.exceptions.ConnectionInterrupted: Redis ConnectionError: Error -2 connecting to redis:6379. Name or service not known.

During handling of the above exception, another exception occurred:
</code></pre>
<p dir="auto">Which kinda looks like it doesn't even pick those up, as it tries to connect to <code>redis:6379</code> which is not correct (the port is but the host would be <code>redis-&lt;appid&gt;</code>)</p>
<p dir="auto">using the redis-cli works fine with the cloudron provided URL, so I guess it just didn't pick up the env vars by those names. Also I have seen the following warning:</p>
<pre><code>WARNING: Baserow is configured to use a PUBLIC_BACKEND_URL of http://localhost:8000. If you attempt to access Baserow on any other hostname requests to the backend will fail as they will be from an unknown host.Please ensure you set PUBLIC_BACKEND_URL if you will be accessing Baserow from any other URL then http://localhost.
WARNING: Baserow is configured to use a default PUBLIC_WEB_FRONTEND_URL of http://localhost:3000. Emails sent by Baserow will use links pointing to http://localhost:3000 when telling users how to access your server. If this is incorrect please ensure you have set PUBLIC_WEB_FRONTEND_URL to the URL where users can access your Baserow server.
</code></pre>
<p dir="auto">which might indicate none of the env vars are correctly picked up? Is there a chance they are differently named and somewhat translated by your Dockerfile start script?</p>
]]></description><link>https://forum.cloudron.io/post/46499</link><guid isPermaLink="true">https://forum.cloudron.io/post/46499</guid><dc:creator><![CDATA[nebulon]]></dc:creator><pubDate>Fri, 22 Apr 2022 22:30:37 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Fri, 22 Apr 2022 13:46:08 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/nebulon" aria-label="Profile: nebulon">@<bdi>nebulon</bdi></a></p>
<p dir="auto">This is how we setup our redis connection with the Baserow django/celery backend:</p>
<pre><code>REDIS_HOST = os.getenv("REDIS_HOST", "redis")
REDIS_PORT = os.getenv("REDIS_PORT", "6379")
REDIS_USERNAME = os.getenv("REDIS_USER", "")
REDIS_PASSWORD = os.getenv("REDIS_PASSWORD", "")
REDIS_PROTOCOL = os.getenv("REDIS_PROTOCOL", "redis")
REDIS_URL = os.getenv(
    "REDIS_URL",
    f"{REDIS_PROTOCOL}://{REDIS_USERNAME}:{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}/0",
)
</code></pre>
<p dir="auto">I'm guessing if there are redis problems then its due to the setup in <a href="https://git.cloudron.io/cloudron/baserow-app/-/blob/master/supervisor.conf" target="_blank" rel="noopener noreferrer nofollow ugc">https://git.cloudron.io/cloudron/baserow-app/-/blob/master/supervisor.conf</a></p>
<pre><code>    REDIS_HOST='%(ENV_CLOUDRON_REDIS_HOST)s',
    REDIS_PORT='%(ENV_CLOUDRON_REDIS_PORT)s',
    REDIS_PASSWORD='%(ENV_CLOUDRON_REDIS_PASSWORD)s',
</code></pre>
<p dir="auto">It looks like you instead provide a CLOUDRON_REDIS_URL with your redis addon, maybe using this instead will fix things?</p>
<p dir="auto">So changing <code>supervisor.conf</code> to only have one env variable for redis being:</p>
<pre><code>    REDIS_URL='%(ENV_CLOUDRON_REDIS_URL)s',
</code></pre>
]]></description><link>https://forum.cloudron.io/post/46458</link><guid isPermaLink="true">https://forum.cloudron.io/post/46458</guid><dc:creator><![CDATA[nigel_baserow]]></dc:creator><pubDate>Fri, 22 Apr 2022 13:46:08 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Thu, 21 Apr 2022 17:46:18 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/nigel_baserow" aria-label="Profile: nigel_baserow">@<bdi>nigel_baserow</bdi></a> thanks for the quick response, I have adjusted the Dockerfile and it does build now with node 12.</p>
<p dir="auto">For some reason it struggles to connect to redis upon installation, I will debug this tomorrow.</p>
]]></description><link>https://forum.cloudron.io/post/46432</link><guid isPermaLink="true">https://forum.cloudron.io/post/46432</guid><dc:creator><![CDATA[nebulon]]></dc:creator><pubDate>Thu, 21 Apr 2022 17:46:18 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Thu, 21 Apr 2022 16:44:32 GMT]]></title><description><![CDATA[<p dir="auto">Apologizes for the delayed response above. We're happy to continue on with different ways of packaging Baserow upstream/downstream.</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/nebulon" aria-label="Profile: nebulon">@<bdi>nebulon</bdi></a> Baserow 1.9 and prior was only built and tested against node 12. It looks like 1.8 and earlier versions happened to also work on node 14/16 present in the cloudron:3.2.0 image. However in 1.9 we introduced a change which accidentally breaks the build when not using node 12.</p>
<p dir="auto">For Baserow 1.10 (not yet released) we've upgraded to using node 16 and fixed the issue above.</p>
<p dir="auto">For now I think you will have to manually downgrade the node version in the Baserow cloudron image to get 1.9 working. Below is a patch for your <a href="https://git.cloudron.io/cloudron/baserow-app.git" target="_blank" rel="noopener noreferrer nofollow ugc">https://git.cloudron.io/cloudron/baserow-app.git</a> repo where I have:</p>
<ol>
<li>Bumped the Baserow version to 1.9.1</li>
<li>Downgraded the image's node version to 12 to fix the build and ensure Baserow is running against its supported version of node.</li>
<li>Removed the MJML CLI install as it is no longer needed at runtime in version 1.9 for sending emails.</li>
</ol>
<pre><code>Index: Dockerfile
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
&lt;+&gt;UTF-8
===================================================================
diff --git a/Dockerfile b/Dockerfile
--- a/Dockerfile	(revision 825192ff012217ba76f726de16cd7a5cc5ade91f)
+++ b/Dockerfile	(date 1650559344287)
@@ -16,13 +16,18 @@
 RUN ln -sf /dev/stdout /var/log/supervisor/supervisord.log
 RUN ln -sf /dev/stdout /app/code/supervisord.log
 
-RUN npm install -g mjml
-
-ARG BASEROW_VERSION=1.8.3
+ARG BASEROW_VERSION=1.9.1
 
 RUN curl -LSs "https://gitlab.com/bramw/baserow/-/archive/${BASEROW_VERSION}/baserow-${BASEROW_VERSION}.tar.gz" | tar -xz -C /app/code/ --strip-components 1 -f -
 RUN virtualenv -p python3 env
 RUN env/bin/pip install --no-cache -r backend/requirements/base.txt
+
+# Baserow 1.9 requires node 12. When Baserow 1.10 is released, this can be removed as it will support node 16 already present in cloudron/base:3.2.0.
+ARG NODEVERSION=12.22.2
+RUN mkdir -p /usr/local/node-${NODEVERSION} &amp;&amp; \
+    curl -L https://nodejs.org/dist/v${NODEVERSION}/node-v${NODEVERSION}-linux-x64.tar.xz | tar Jxf - --strip-components 1 -C /usr/local/node-${NODEVERSION}
+ENV PATH /usr/local/node-${NODEVERSION}/bin:$PATH
+
 RUN (cd web-frontend &amp;&amp; yarn install &amp;&amp; yarn build)
 
 RUN (mkdir -p /app/code/cloudron/cloudron &amp;&amp; touch /app/code/cloudron/cloudron/__init__.py)
Index: settings.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
&lt;+&gt;UTF-8
===================================================================
diff --git a/settings.py b/settings.py
--- a/settings.py	(revision 825192ff012217ba76f726de16cd7a5cc5ade91f)
+++ b/settings.py	(date 1650557484604)
@@ -3,9 +3,6 @@
 
 MEDIA_ROOT = '/app/data/media'
 
-MJML_BACKEND_MODE = 'cmd'
-MJML_EXEC_CMD = 'mjml'
-
 FROM_EMAIL = os.environ['CLOUDRON_MAIL_FROM']
 EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
 EMAIL_USE_TLS = False

</code></pre>
<p dir="auto">I won't have a chance today to manually test this image, however it now builds for me and should work.</p>
]]></description><link>https://forum.cloudron.io/post/46429</link><guid isPermaLink="true">https://forum.cloudron.io/post/46429</guid><dc:creator><![CDATA[nigel_baserow]]></dc:creator><pubDate>Thu, 21 Apr 2022 16:44:32 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Thu, 21 Apr 2022 12:07:57 GMT]]></title><description><![CDATA[<p dir="auto">I have taken another run at this and for a start, lets try to get 1.9 packaged, then see how we can sync up with <a class="plugin-mentions-user plugin-mentions-a" href="/user/nigel_baserow" aria-label="Profile: nigel_baserow">@<bdi>nigel_baserow</bdi></a> suggestions on how to streamline the package/images.</p>
<p dir="auto">At the moment, just building it for 1.9 results in a yarn nuxt error from <code>RUN (cd web-frontend &amp;&amp; yarn install &amp;&amp; yarn build)</code>:</p>
<pre><code>Entrypoint app = server.js server.js.map

ERROR in ./modules/database/store/view/bufferedRows.js 31:153
Module parse failed: Unexpected token (31:153)
File was processed with these loaders:
 * ./node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
|  * ]
|  * ```
&gt;  */export default(({service,customPopulateRow})=&gt;{let lastRequestSource=null;const populateRow=row=&gt;{if(customPopulateRow){customPopulateRow(row);}row._??={};// Matching rows for front-end only search is not yet properly
| // supported and tested in this store mixin. Only server-side search
| // implementation is finished.
 @ ./modules/database/store/view/gallery.js 1:0-76 1:322-334
 @ ./.nuxt/database.plugin.6555c3fe.js
 @ ./.nuxt/index.js
 @ ./.nuxt/server.js
 @ multi ./.nuxt/server.js
</code></pre>
<p dir="auto">I am not sure at all what this means and what could be missing, does anyone have an idea here?</p>
]]></description><link>https://forum.cloudron.io/post/46419</link><guid isPermaLink="true">https://forum.cloudron.io/post/46419</guid><dc:creator><![CDATA[nebulon]]></dc:creator><pubDate>Thu, 21 Apr 2022 12:07:57 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Wed, 13 Apr 2022 18:46:10 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/girish" aria-label="Profile: girish">@<bdi>girish</bdi></a> do you have any plans to provide 1.9 soon?</p>
]]></description><link>https://forum.cloudron.io/post/46134</link><guid isPermaLink="true">https://forum.cloudron.io/post/46134</guid><dc:creator><![CDATA[tobru]]></dc:creator><pubDate>Wed, 13 Apr 2022 18:46:10 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Fri, 01 Apr 2022 23:19:31 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/alex-a-soto" aria-label="Profile: alex-a-soto">@<bdi>alex-a-soto</bdi></a> we will continue to update/maintain the package. Expect an update next week or so.</p>
]]></description><link>https://forum.cloudron.io/post/45597</link><guid isPermaLink="true">https://forum.cloudron.io/post/45597</guid><dc:creator><![CDATA[girish]]></dc:creator><pubDate>Fri, 01 Apr 2022 23:19:31 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Fri, 01 Apr 2022 20:48:24 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/alex-a-soto" aria-label="Profile: alex-a-soto">@<bdi>alex-a-soto</bdi></a> said in <a href="/post/45584">Baserow 1.9 and it's Dockerfile and packaging changes</a>:</p>
<blockquote>
<p dir="auto">Baserow is one of the applications that I use a lot on Cloudron</p>
</blockquote>
<p dir="auto">How do you use it?</p>
]]></description><link>https://forum.cloudron.io/post/45588</link><guid isPermaLink="true">https://forum.cloudron.io/post/45588</guid><dc:creator><![CDATA[robi]]></dc:creator><pubDate>Fri, 01 Apr 2022 20:48:24 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Fri, 01 Apr 2022 19:16:33 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/girish" aria-label="Profile: girish">@<bdi>girish</bdi></a> said in <a href="/post/44075">Baserow 1.9 and it's Dockerfile and packaging changes</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/nigel_baserow" aria-label="Profile: nigel_baserow">@<bdi>nigel_baserow</bdi></a> sorry for the late reply!</p>
<p dir="auto">As <a class="plugin-mentions-user plugin-mentions-a" href="/user/robi" aria-label="Profile: robi">@<bdi>robi</bdi></a> mentioned, all our apps are based on the same base image. This is mostly to maintain consistency and saves us a lot of developer time in terms of maintaining these images. The base image also needs to have many packages that are expected by the Cloudron tooling - the web terminal, upload, extract features all depend on the base image having various packages pre-installed.</p>
<p dir="auto">In general, we are comfortable with the cloudron packaging and the upstream docker image diverging. From what we have seen, the goals of these images are quite different. Upstream images want to support a wide variety of configurations and have different optimizations in mind. The Cloudron image on the other hand is pre-configured (database, email, storage, auth etc) and has various security restrictions (read only file system, non-root user etc).</p>
<p dir="auto">We are happy to make the changes needed to the cloudron packaging with your help (this is just a matter of adapting what you have written to the cloudron image, I think). So, I think 1) is the way to go. Another thing is that removing mjml service is not a problem at all. In fact, that is the advantage of cloudron packaging, the docker images can be thrown away and replaced with another as long as the docker image can handle the "data" from the previous version.</p>
</blockquote>
<p dir="auto">Hello, thank you for building Cloudron, and all of the work that has gone into it.</p>
<p dir="auto">Baserow is one of the applications that I use a lot on Cloudron and I intend to use it further in combination with n8n and other applications.</p>
<p dir="auto">What's the status of updating Baserow to 1.9 in Cloudron?</p>
<p dir="auto">Thank you for your time and support.</p>
]]></description><link>https://forum.cloudron.io/post/45584</link><guid isPermaLink="true">https://forum.cloudron.io/post/45584</guid><dc:creator><![CDATA[alex-a-soto]]></dc:creator><pubDate>Fri, 01 Apr 2022 19:16:33 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Mon, 28 Mar 2022 22:00:48 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jdaviescoates" aria-label="Profile: jdaviescoates">@<bdi>jdaviescoates</bdi></a> you are right <img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f44d.png?v=223f9defb2f" class="not-responsive emoji emoji-android emoji--+1" style="height:23px;width:auto;vertical-align:middle" title=":+1:" alt="👍" />  I correct</p>
]]></description><link>https://forum.cloudron.io/post/45421</link><guid isPermaLink="true">https://forum.cloudron.io/post/45421</guid><dc:creator><![CDATA[jeau]]></dc:creator><pubDate>Mon, 28 Mar 2022 22:00:48 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Mon, 28 Mar 2022 20:50:14 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jeau" aria-label="Profile: jeau">@<bdi>jeau</bdi></a> said in <a href="/post/45399">Baserow 1.9 and it's Dockerfile and packaging changes</a>:</p>
<blockquote>
<p dir="auto">latest version of Cloudron (1.9.1)</p>
</blockquote>
<p dir="auto">You mean the latest version of Baserow <img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=223f9defb2f" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
]]></description><link>https://forum.cloudron.io/post/45419</link><guid isPermaLink="true">https://forum.cloudron.io/post/45419</guid><dc:creator><![CDATA[jdaviescoates]]></dc:creator><pubDate>Mon, 28 Mar 2022 20:50:14 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Mon, 28 Mar 2022 22:01:17 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/girish" aria-label="Profile: girish">@<bdi>girish</bdi></a> <a class="plugin-mentions-user plugin-mentions-a" href="/user/bram" aria-label="Profile: bram">@<bdi>bram</bdi></a> <a class="plugin-mentions-user plugin-mentions-a" href="/user/nigel_baserow" aria-label="Profile: nigel_baserow">@<bdi>nigel_baserow</bdi></a></p>
<p dir="auto">Is there any chance to see the latest version of Baserow (1.9.1) on the Cloudron store?  The version on the store is 1.8.2.</p>
<p dir="auto">I don't know what to think about the request that opened this thread and the responses I just read on the baserow forum:</p>
<p dir="auto"><a href="https://community.baserow.io/t/cloudron-release/339" target="_blank" rel="noopener noreferrer nofollow ugc">https://community.baserow.io/t/cloudron-release/339</a></p>
]]></description><link>https://forum.cloudron.io/post/45399</link><guid isPermaLink="true">https://forum.cloudron.io/post/45399</guid><dc:creator><![CDATA[jeau]]></dc:creator><pubDate>Mon, 28 Mar 2022 22:01:17 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Mon, 28 Feb 2022 18:49:34 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/nigel_baserow" aria-label="Profile: nigel_baserow">@<bdi>nigel_baserow</bdi></a> sorry for the late reply!</p>
<p dir="auto">As <a class="plugin-mentions-user plugin-mentions-a" href="/user/robi" aria-label="Profile: robi">@<bdi>robi</bdi></a> mentioned, all our apps are based on the same base image. This is mostly to maintain consistency and saves us a lot of developer time in terms of maintaining these images. The base image also needs to have many packages that are expected by the Cloudron tooling - the web terminal, upload, extract features all depend on the base image having various packages pre-installed.</p>
<p dir="auto">In general, we are comfortable with the cloudron packaging and the upstream docker image diverging. From what we have seen, the goals of these images are quite different. Upstream images want to support a wide variety of configurations and have different optimizations in mind. The Cloudron image on the other hand is pre-configured (database, email, storage, auth etc) and has various security restrictions (read only file system, non-root user etc).</p>
<p dir="auto">We are happy to make the changes needed to the cloudron packaging with your help (this is just a matter of adapting what you have written to the cloudron image, I think). So, I think 1) is the way to go. Another thing is that removing mjml service is not a problem at all. In fact, that is the advantage of cloudron packaging, the docker images can be thrown away and replaced with another as long as the docker image can handle the "data" from the previous version.</p>
]]></description><link>https://forum.cloudron.io/post/44075</link><guid isPermaLink="true">https://forum.cloudron.io/post/44075</guid><dc:creator><![CDATA[girish]]></dc:creator><pubDate>Mon, 28 Feb 2022 18:49:34 GMT</pubDate></item><item><title><![CDATA[Reply to Baserow 1.9 and it&#x27;s Dockerfile and packaging changes on Thu, 24 Feb 2022 21:49:36 GMT]]></title><description><![CDATA[<p dir="auto">I think the main for cloudron issue is realizing that all cloudron apps are based on the cloudron base image. This saves disk space and provides a stable single base image.</p>
<p dir="auto">Having a new base image for a single app would add yet another base image used by only one app. Not ideal.</p>
<p dir="auto">I'll let <a class="plugin-mentions-group plugin-mentions-a" href="/groups/staff" aria-label="Profile: staff">@<bdi>staff</bdi></a> chime in for a more official response.</p>
]]></description><link>https://forum.cloudron.io/post/43948</link><guid isPermaLink="true">https://forum.cloudron.io/post/43948</guid><dc:creator><![CDATA[robi]]></dc:creator><pubDate>Thu, 24 Feb 2022 21:49:36 GMT</pubDate></item></channel></rss>