diff --git a/CHANGELOG b/CHANGELOG
index f4d830dd14b41130d0260bdfad57da9327cdca7a..d20399e26106733cb83bd822086c3dd94252c863 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,12 @@
+smasch (1.0.0~beta.4-1) unstable; urgency=low
+
+  * bug fix: MEDIA_ROOT was overwritten by tests that messed up with
+    deployment sometimes (#365)
+  * bug fix: media files were not served in production (#366)
+  * bug fix: crontab was cleared after debian package updated (#367)
+
+ -- Piotr Gawron <piotr.gawron@uni.lu>  Tue, 26 Jan 2021 16:00:00 +0200
+
 smasch (1.0.0~beta.3-1) unstable; urgency=low
 
   * bug fix: upgrade from 0.15 version containing subjects failed
diff --git a/debian-template/postinst b/debian-template/postinst
index c6f237ddcdbee5217f65bbb0896239ba1ae2bcfe..4d55be22f1298e5c52e624958c10f9a4069e06e3 100644
--- a/debian-template/postinst
+++ b/debian-template/postinst
@@ -50,9 +50,7 @@ if [ -d /run/systemd/system ]; then
   systemctl --system daemon-reload >/dev/null || true
 fi
 
-if [ "$1" = "configure" ] && [ -z "$2" ]; then
-    crontab -u smasch -l 2>/dev/null | grep -v "runcrons" | { cat; echo "*/5 * * * * . /usr/lib/smasch/env/bin/activate && python /usr/lib/smasch/manage.py runcrons >> /var/log/smasch/cronjob.log 2>&1"; } | crontab -u smasch -
-fi
+crontab -u smasch -l 2>/dev/null | grep -v "runcrons" | { cat; echo "*/5 * * * * . /usr/lib/smasch/env/bin/activate && python /usr/lib/smasch/manage.py runcrons >> /var/log/smasch/cronjob.log 2>&1"; } | crontab -u smasch -
 
 #DEBHELPER#
 
diff --git a/smash/smash/urls.py b/smash/smash/urls.py
index a192a4313717c90d01ab3fc0bd8581a5dda95eb5..229328a8202d3f5a77ed622135d097dab9151030 100644
--- a/smash/smash/urls.py
+++ b/smash/smash/urls.py
@@ -13,20 +13,25 @@ Including another URLconf
     1. Import the include() function: from django.conf.urls import url, include
     2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
 """
+import re
 
 from django.conf import settings
 from django.conf.urls import url, include
-from django.conf.urls.static import static
 from django.contrib import admin
-
+from django.urls import re_path
+from django.views.static import serve
 from two_factor.urls import urlpatterns as tf_urls
 
 from web import api_urls
 from web import urls
 
 urlpatterns = [
-                  url(r'^admin/', admin.site.urls),
-                  url(r'', include(urls)),
-                  url(r'^api/', include(api_urls)),
-                  url(r'', include(tf_urls)),
-              ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
+    url(r'^admin/', admin.site.urls),
+    url(r'', include(urls)),
+    url(r'^api/', include(api_urls)),
+    url(r'', include(tf_urls))
+]
+
+if settings.SERVE_STATIC or settings.DEBUG:
+    urlpatterns.append(re_path(r'^%s(?P<path>.*)$' % re.escape(settings.MEDIA_URL.lstrip('/')), serve,
+                               {'document_root': settings.MEDIA_ROOT}))
diff --git a/smash/web/templates/_base.html b/smash/web/templates/_base.html
index c198f9da9bd0962eddfeba8c8abc27bc5c6cd951..c7a7abef0592673cfc8d744107f41b475b9c93c9 100644
--- a/smash/web/templates/_base.html
+++ b/smash/web/templates/_base.html
@@ -256,7 +256,7 @@ desired effect
         {% block footer %}
             <!-- To the right -->
             <div class="pull-right hidden-xs">
-                Version: <strong>1.0.0~beta.3</strong>
+                Version: <strong>1.0.0~beta.4</strong>
             </div>
 
             <!-- Default to the left -->
diff --git a/smash/web/tests/__init__.py b/smash/web/tests/__init__.py
index 915d82c0bd85fec22b86d0d5f64c16e9f10fd818..bf24a02c5d39827dcfe705b1ce4f57980458e89b 100644
--- a/smash/web/tests/__init__.py
+++ b/smash/web/tests/__init__.py
@@ -1,15 +1,22 @@
 import logging
 import os
+import sys
+
 from django.conf import settings
 from django.contrib.auth.models import User
 from django.test import Client
 from django.test import TestCase
-from web.models import Worker
-from web.decorators import PermissionDecorator
 
+from web.decorators import PermissionDecorator
+from web.models import Worker
 from .functions import create_worker, create_user, add_permissions_to_worker
 
-settings.MEDIA_ROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data')
+# if manage.py test was called, use test settings
+if 'test' in sys.argv:
+    try:
+        settings.MEDIA_ROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data')
+    except ImportError:
+        pass
 
 logger = logging.getLogger(__name__)
 
@@ -19,7 +26,7 @@ class LoggedInTestCase(TestCase):
         self.password = 'abcd1234'
         #superuser
         self.super_worker = create_worker(user=User.objects.create_superuser(username='super', password=self.password, email='a@mail.com'))
-        #admin 
+        #admin
         self.admin_worker = Worker.get_by_user(create_user(username='admin', password=self.password))
         add_permissions_to_worker(self.admin_worker, PermissionDecorator.codenames)
         #staff
@@ -34,15 +41,15 @@ class LoggedInTestCase(TestCase):
 
     def login_as_staff(self):
         self.client.logout()
-        self.client.login(username='staff', password=self.password) 
+        self.client.login(username='staff', password=self.password)
 
     def login_as_admin(self):
         self.client.logout()
-        self.client.login(username='admin', password=self.password) 
+        self.client.login(username='admin', password=self.password)
 
     def login_as_super(self):
         self.client.logout()
-        self.client.login(username='super', password=self.password) 
+        self.client.login(username='super', password=self.password)
 
 
 class LoggedInWithWorkerTestCase(LoggedInTestCase):