Jelajahi Sumber

Bring the app up-to-date

Johannes 8 tahun lalu
induk
melakukan
7aa33110bf
7 mengubah file dengan 82 tambahan dan 47 penghapusan
  1. 17 11
      Dockerfile
  2. 1 1
      build.sh
  3. 1 2
      conf.json
  4. 18 0
      conf_ldap.json
  5. 0 19
      local.py
  6. 19 0
      local_ldap.py
  7. 26 14
      start.sh

+ 17 - 11
Dockerfile

@@ -1,24 +1,30 @@
-FROM cloudron/base:0.8.1
+FROM cloudron/base:0.9.0
 MAINTAINER Johannes Zellner <support@cloudron.io>
 
-EXPOSE 8000
-
-RUN mkdir -p /app/code /app/data
+RUN mkdir -p /app/code
 WORKDIR /app/code
 
+# RUN apt-get update && apt-get install -y \
+#     build-essential binutils-doc autoconf flex bison libjpeg-dev libfreetype6-dev \
+#     zlib1g-dev libzmq3-dev libgdbm-dev libncurses5-dev automake libtool libffi-dev curl git tmux \
+#     gettext python3 python3-pip python-dev python3-dev virtualenvwrapper libxml2-dev libxslt-dev \
+#     postgresql-9.4 postgresql-contrib-9.4 postgresql-server-dev-9.4 nginx
+
 RUN apt-get update && apt-get install -y \
-    build-essential binutils-doc autoconf flex bison libjpeg-dev libfreetype6-dev \
-    zlib1g-dev libzmq3-dev libgdbm-dev libncurses5-dev automake libtool libffi-dev curl git tmux \
-    gettext python3 python3-pip python-dev python3-dev virtualenvwrapper libxml2-dev libxslt-dev \
-    postgresql-9.4 postgresql-contrib-9.4 postgresql-server-dev-9.4 nginx
+    build-essential binutils-doc autoconf flex bison libjpeg-dev \
+    libfreetype6-dev zlib1g-dev libzmq3-dev libgdbm-dev libncurses5-dev \
+    automake libtool libffi-dev curl git tmux gettext \
+    python3 python3-pip python-dev python3-dev python-pip virtualenvwrapper \
+    postgresql-9.5 postgresql-contrib-9.5 postgresql-server-dev-9.5 nginx \
+    libxml2-dev libxslt-dev
 
 ## backend
 RUN mkdir /app/code/taiga-back
-RUN curl -L https://github.com/taigaio/taiga-back/archive/2.1.0.tar.gz | tar -xz -C /app/code/taiga-back --strip-components 1 -f -
+RUN curl -L https://github.com/taigaio/taiga-back/archive/3.0.0.tar.gz | tar -xz -C /app/code/taiga-back --strip-components 1 -f -
 
 ## frontend
 RUN mkdir /app/code/taiga-front-dist
-RUN curl -L https://github.com/taigaio/taiga-front-dist/archive/2.1.0-stable.tar.gz | tar -xz -C /app/code/taiga-front-dist --strip-components 1 -f -
+RUN curl -L https://github.com/taigaio/taiga-front-dist/archive/3.0.0-stable.tar.gz | tar -xz -C /app/code/taiga-front-dist --strip-components 1 -f -
 
 RUN rm -rf /app/code/taiga-back/media && \
     ln -s /app/data/media /app/code/taiga-back/media
@@ -31,6 +37,6 @@ RUN rm -rf /var/log/nginx && mkdir /run/nginx && ln -s /run/nginx /var/log/nginx
 RUN rm -f /app/code/taiga-back/settings/local.py && ln -s /run/local.py /app/code/taiga-back/settings/local.py
 RUN rm -f /app/code/taiga-front-dist/dist/conf.json && ln -s /run/conf.json /app/code/taiga-front-dist/dist/conf.json
 
-ADD nginx.conf conf.json local.py start.sh /app/code/
+ADD nginx.conf conf.json conf_ldap.json local.py local_ldap.py start.sh /app/code/
 
 CMD [ "/app/code/start.sh" ]

+ 1 - 1
build.sh

@@ -6,7 +6,7 @@ echo "========= Build ========="
 
 echo "setup taiga virtualenv"
 cd /app/code
-virtualenv -p /usr/bin/python3.4 taiga
+virtualenv -p /usr/bin/python3.5 taiga
 source /app/code/taiga/bin/activate
 
 echo "install pip"

+ 1 - 2
conf.json

@@ -8,11 +8,10 @@
     "defaultLanguage": "en",
     "themes": ["taiga"],
     "defaultTheme": "taiga",
-    "publicRegisterEnabled": false,
+    "publicRegisterEnabled": true,
     "feedbackEnabled": true,
     "privacyPolicyUrl": null,
     "termsOfServiceUrl": null,
     "maxUploadFileSize": null,
-    "loginFormType": "ldap",
     "contribPlugins": []
 }

+ 18 - 0
conf_ldap.json

@@ -0,0 +1,18 @@
+{
+    "api": "https://##APP_DOMAIN##/api/v1/",
+    "eventsUrl": "wss://##APP_DOMAIN##/events",
+    "eventsMaxMissedHeartbeats": 5,
+    "eventsHeartbeatIntervalTime": 60000,
+    "debug": true,
+    "debugInfo": true,
+    "defaultLanguage": "en",
+    "themes": ["taiga"],
+    "defaultTheme": "taiga",
+    "publicRegisterEnabled": true,
+    "feedbackEnabled": true,
+    "privacyPolicyUrl": null,
+    "termsOfServiceUrl": null,
+    "maxUploadFileSize": null,
+    "loginFormType": "ldap",
+    "contribPlugins": []
+}

+ 0 - 19
local.py

@@ -37,22 +37,3 @@ DATABASES = {
         "PORT": "##POSTGRESQL_PORT##",
     }
 }
-
-INSTALLED_APPS += ["taiga_contrib_ldap_auth"]
-
-LDAP_SERVER = "ldap://##LDAP_SERVER##"
-LDAP_PORT = ##LDAP_PORT##
-
-# Full DN of the service account use to connect to LDAP server and search for login user's account entry
-# If LDAP_BIND_DN is not specified, or is blank, then an anonymous bind is attempated
-LDAP_BIND_DN = ""
-LDAP_BIND_PASSWORD = ""
-# Starting point within LDAP structure to search for login user
-LDAP_SEARCH_BASE = "##LDAP_USERS_BASE_DN##"
-# LDAP property used for searching, ie. login username needs to match value in sAMAccountName property in LDAP
-LDAP_SEARCH_PROPERTY = "sAMAccountName"
-LDAP_SEARCH_SUFFIX = None # '@example.com'
-
-# Names of LDAP properties on user account to get email and full name
-LDAP_EMAIL_PROPERTY = "mail"
-LDAP_FULL_NAME_PROPERTY = "displayname"

+ 19 - 0
local_ldap.py

@@ -0,0 +1,19 @@
+
+INSTALLED_APPS += ["taiga_contrib_ldap_auth"]
+
+LDAP_SERVER = "ldap://##LDAP_SERVER##"
+LDAP_PORT = ##LDAP_PORT##
+
+# Full DN of the service account use to connect to LDAP server and search for login user's account entry
+# If LDAP_BIND_DN is not specified, or is blank, then an anonymous bind is attempated
+LDAP_BIND_DN = ""
+LDAP_BIND_PASSWORD = ""
+# Starting point within LDAP structure to search for login user
+LDAP_SEARCH_BASE = "##LDAP_USERS_BASE_DN##"
+# LDAP property used for searching, ie. login username needs to match value in sAMAccountName property in LDAP
+LDAP_SEARCH_PROPERTY = "sAMAccountName"
+# LDAP_SEARCH_SUFFIX = None # '@example.com'
+
+# Names of LDAP properties on user account to get email and full name
+LDAP_EMAIL_PROPERTY = "mail"
+LDAP_FULL_NAME_PROPERTY = "displayname"

+ 26 - 14
start.sh

@@ -4,7 +4,7 @@
 
 echo "========= Start ========="
 
-echo "--> local.py"
+echo "==> local.py"
 sed -e "s/##APP_DOMAIN##/${APP_DOMAIN}/" \
     -e "s/##MAIL_DOMAIN##/${MAIL_DOMAIN}/" \
     -e "s/##MAIL_FROM##/${MAIL_FROM}/" \
@@ -12,9 +12,6 @@ sed -e "s/##APP_DOMAIN##/${APP_DOMAIN}/" \
     -e "s/##MAIL_SMTP_PORT##/${MAIL_SMTP_PORT}/" \
     -e "s/##MAIL_SMTP_USERNAME##/${MAIL_SMTP_USERNAME}/" \
     -e "s/##MAIL_SMTP_PASSWORD##/${MAIL_SMTP_PASSWORD}/" \
-    -e "s/##LDAP_SERVER##/${LDAP_SERVER}/" \
-    -e "s/##LDAP_PORT##/${LDAP_PORT}/" \
-    -e "s/##LDAP_USERS_BASE_DN##/${LDAP_USERS_BASE_DN}/" \
     -e "s/##POSTGRESQL_DATABASE##/${POSTGRESQL_DATABASE}/" \
     -e "s/##POSTGRESQL_USERNAME##/${POSTGRESQL_USERNAME}/" \
     -e "s/##POSTGRESQL_PASSWORD##/${POSTGRESQL_PASSWORD}/" \
@@ -22,37 +19,52 @@ sed -e "s/##APP_DOMAIN##/${APP_DOMAIN}/" \
     -e "s/##POSTGRESQL_PORT##/${POSTGRESQL_PORT}/" \
     /app/code/local.py  > /run/local.py
 
-echo "--> Update conf.json"
-sed -e "s/##APP_DOMAIN##/${APP_DOMAIN}/" /app/code/conf.json > /run/conf.json
+if [[ -n "${LDAP_SERVER:-}" ]]; then
+    echo "==> setup ldap"
+    sed -e "s/##LDAP_SERVER##/${LDAP_SERVER}/" \
+        -e "s/##LDAP_PORT##/${LDAP_PORT}/" \
+        -e "s/##LDAP_USERS_BASE_DN##/${LDAP_USERS_BASE_DN}/" \
+        /app/code/local_ldap.py >> /run/local.py
+fi
+
+if [[ -n "${LDAP_SERVER:-}" ]]; then
+    echo "==> Update conf.json with LDAP"
+    sed -e "s/##APP_DOMAIN##/${APP_DOMAIN}/" /app/code/conf_ldap.json > /run/conf.json
+else
+    echo "==> Update conf.json"
+    sed -e "s/##APP_DOMAIN##/${APP_DOMAIN}/" /app/code/conf.json > /run/conf.json
+fi
 
-echo "--> Update nginx.conf"
+echo "==> Update nginx.conf"
 sed -e "s,##APP_DOMAIN##,${APP_DOMAIN}," /app/code/nginx.conf  > /run/nginx.conf
 
-echo "--> Setup taiga virtual env"
+echo "==> Setup taiga virtual env"
 source /app/code/taiga/bin/activate
 
-echo "--> Run migration scripts"
+echo "==> Run migration scripts"
 if [[ ! -d /app/data/media/user ]]; then
-    echo "--> New installation create inital project templates"
+    echo "==> New installation create inital project templates"
 
     mkdir -p /app/data/media/user
     cd /app/code/taiga-back
 
     python manage.py migrate --noinput
+    python manage.py loaddata initial_user
     python manage.py loaddata initial_project_templates
+    python manage.py loaddata initial_role
 fi
 
-echo "--> Make cloudron own /run"
+echo "==> Make cloudron own /run"
 chown -R cloudron:cloudron /run
 chown -R cloudron:cloudron /app/data
 
-echo "--> Start nginx"
+echo "==> Start nginx"
 nginx -c /run/nginx.conf &
 
-echo "--> Start taiga-back"
+echo "==> Start taiga-back"
 PATH=/app/code/taiga/bin:$PATH
 HOME=/app/code
-PYTHONPATH=/app/code/taiga/lib/python3.4/site-packages
+PYTHONPATH=/app/code/taiga/lib/python3.5/site-packages
 
 cd /app/code/taiga-back