refactor: replace lein with cli tools and update some deps
- also removes docker files from source directories - minor assets reorganization on back (make it more production ready)
|
@ -1,80 +0,0 @@
|
|||
FROM monogramm/docker-uxbox-builder:latest
|
||||
|
||||
ENV LEIN_ROOT=TRUE
|
||||
|
||||
# Copy backend source and build release
|
||||
COPY . /home/uxbox/backend
|
||||
RUN set -ex; \
|
||||
cd backend; \
|
||||
rm -f Dockerfile; \
|
||||
bash -c "/home/uxbox/backend/scripts/dist.sh"
|
||||
|
||||
|
||||
|
||||
# Once application has been built, prepare production image
|
||||
FROM openjdk:8-jre
|
||||
|
||||
LABEL maintainer="Monogramm Maintainers <opensource at monogramm dot io>"
|
||||
|
||||
# Add uxbox as provided by builder
|
||||
COPY --from=0 /home/uxbox/backend/dist/uxbox-backend.jar /srv/uxbox/app.jar
|
||||
COPY --from=0 /home/uxbox/backend/docker-entrypoint.sh /entrypoint.sh
|
||||
|
||||
ENV LANG=en_US.UTF-8 \
|
||||
LC_ALL=C.UTF-8 \
|
||||
UXBOX_HTTP_SERVER_DEBUG=false \
|
||||
UXBOX_MEDIA_URI="http://localhost:6060/media/" \
|
||||
UXBOX_MEDIA_DIRECTORY="resources/public/media" \
|
||||
UXBOX_ASSETS_URI="http://localhost:6060/static/" \
|
||||
UXBOX_ASSETS_DIRECTORY="resources/public/static" \
|
||||
UXBOX_DATABASE_USERNAME="uxbox" \
|
||||
UXBOX_DATABASE_PASSWORD="youshouldoverwritethiswithsomethingelse" \
|
||||
UXBOX_DATABASE_NAME="uxbox" \
|
||||
UXBOX_DATABASE_SERVER="localhost" \
|
||||
UXBOX_DATABASE_PORT=5432 \
|
||||
UXBOX_EMAIL_REPLY_TO="no-reply@uxbox.io" \
|
||||
UXBOX_EMAIL_FROM="no-reply@uxbox.io" \
|
||||
UXBOX_SMTP_HOST="localhost" \
|
||||
UXBOX_SMTP_PORT=25 \
|
||||
UXBOX_SMTP_USER="uxbox" \
|
||||
UXBOX_SMTP_PASSWORD="youshouldoverwritethiswithsomethingelse" \
|
||||
UXBOX_SMTP_SSL=false \
|
||||
UXBOX_SMTP_TLS=false \
|
||||
UXBOX_SMTP_ENABLED=false \
|
||||
UXBOX_SECRET=""
|
||||
|
||||
RUN set -ex; \
|
||||
chmod 755 /entrypoint.sh; \
|
||||
mkdir -p /srv/uxbox/resources/public/media; \
|
||||
mkdir -p /srv/uxbox/resources/public/static; \
|
||||
apt-get update -yq && \
|
||||
apt-get install -yq \
|
||||
git \
|
||||
imagemagick \
|
||||
webp \
|
||||
; \
|
||||
apt-get update -yq; \
|
||||
apt-get install -yq \
|
||||
libbz2-dev liblzma-dev zlib1g-dev libfftw3-dev \
|
||||
libfreetype6-dev libfontconfig1-dev libxt-dev \
|
||||
libexif-dev libjpeg-dev libpng-dev libtiff-dev \
|
||||
libwmf-dev libpango1.0-dev librsvg2-bin librsvg2-dev \
|
||||
libxml2-dev libwebp-dev webp \
|
||||
; \
|
||||
git clone https://github.com/ImageMagick/ImageMagick.git imagemagick && \
|
||||
cd imagemagick && \
|
||||
git checkout -f 7.0.8-27 && \
|
||||
./configure --prefix=/opt/img && \
|
||||
make -j2 && \
|
||||
make install && \
|
||||
cd .. && \
|
||||
rm -rf ./imagemagick
|
||||
|
||||
VOLUME /srv/uxbox/resources/public
|
||||
|
||||
WORKDIR /srv/uxbox/
|
||||
|
||||
EXPOSE 6060
|
||||
|
||||
ENTRYPOINT ["sh", "/entrypoint.sh"]
|
||||
CMD ["java", "-jar", "app.jar"]
|
40
backend/deps.edn
Normal file
|
@ -0,0 +1,40 @@
|
|||
{:deps {org.clojure/clojure {:mvn/version "1.10.0"}
|
||||
org.clojure/tools.logging {:mvn/version "0.3.1"}
|
||||
org.clojure/data.xml {:mvn/version "0.1.0-beta2"}
|
||||
funcool/suricatta {:mvn/version "1.3.1"}
|
||||
funcool/promesa {:mvn/version "2.0.0"}
|
||||
funcool/catacumba {:mvn/version "2.1.0"}
|
||||
funcool/cuerdas {:mvn/version "2.2.0"}
|
||||
funcool/datoteka {:mvn/version "1.0.0"}
|
||||
|
||||
org.jsoup/jsoup {:mvn/version "1.10.2"}
|
||||
hiccup/hiccup {:mvn/version "1.0.5"}
|
||||
org.im4java/im4java {:mvn/version "1.4.0"}
|
||||
org.slf4j/slf4j-simple {:mvn/version "1.7.24"}
|
||||
com.layerware/hugsql-core {:mvn/version "0.4.7"
|
||||
:exclusions [org.clojure/tools.reader]}
|
||||
niwinz/migrante {:mvn/version "0.1.0"}
|
||||
buddy/buddy-sign {:mvn/version "2.2.0"}
|
||||
buddy/buddy-hashers {:mvn/version "1.3.0"}
|
||||
|
||||
org.xerial.snappy/snappy-java {:mvn/version "1.1.2.6"}
|
||||
com.github.spullara.mustache.java/compiler {:mvn/version "0.9.4"}
|
||||
org.postgresql/postgresql {:mvn/version "42.0.0"}
|
||||
org.quartz-scheduler/quartz {:mvn/version "2.2.3"}
|
||||
org.quartz-scheduler/quartz-jobs {:mvn/version "2.2.3"}
|
||||
commons-io/commons-io {:mvn/version "2.5"}
|
||||
com.draines/postal {:mvn/version "2.0.2"
|
||||
:exclusions [commons-codec/commons-codec]}
|
||||
hikari-cp/hikari-cp {:mvn/version "1.7.5"}
|
||||
mount/mount {:mvn/version "0.1.11"}
|
||||
environ/environ {:mvn/version "1.1.0"}
|
||||
}
|
||||
:paths ["src" "vendor" "resources"]
|
||||
:aliases
|
||||
{:dev
|
||||
{:extra-deps {com.bhauman/rebel-readline {:mvn/version "0.1.4"}
|
||||
org.clojure/tools.namespace {:mvn/version "0.2.11"}
|
||||
}
|
||||
:extra-paths ["test"]}
|
||||
}}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
echo "UXBOX backend Docker entrypoint initialization..."
|
||||
|
||||
echo 'Running UXBOX backend'
|
||||
exec "$@"
|
|
@ -1,13 +0,0 @@
|
|||
{:dev
|
||||
{:plugins [[lein-ancient "0.6.10"]]
|
||||
:dependencies [[clj-http "2.1.0"]]
|
||||
:jvm-opts ["-Xms50m" "-Xmx200m" "-XX:+UseG1GC"]
|
||||
:main ^:skip-aot uxbox.main}
|
||||
|
||||
:uberjar
|
||||
{:jar-exclusions [#"\.swp|\.swo|user\.clj" #"^media"]
|
||||
:jar-name "uxbox.jar"
|
||||
:uberjar-name "uxbox-backend.jar"
|
||||
:main uxbox.main
|
||||
:aot :all
|
||||
:target-path "dist/"}}
|
|
@ -1,44 +0,0 @@
|
|||
(defproject uxbox-backend "0.1.0-SNAPSHOT"
|
||||
:description "UXBox backend."
|
||||
:url "http://uxbox.github.io"
|
||||
:license {:name "MPL 2.0" :url "https://www.mozilla.org/en-US/MPL/2.0/"}
|
||||
:source-paths ["src" "vendor"]
|
||||
:javac-options ["-target" "1.8" "-source" "1.8" "-Xlint:-options"]
|
||||
;; :jvm-opts ["-Dcom.sun.management.jmxremote.port=9090"
|
||||
;; "-Dcom.sun.management.jmxremote.authenticate=false"
|
||||
;; "-Dcom.sun.management.jmxremote.ssl=false"
|
||||
;; "-Dcom.sun.management.jmxremote.rmi.port=9090"
|
||||
;; "-Djava.rmi.server.hostname=0.0.0.0"]
|
||||
:dependencies [[org.clojure/clojure "1.9.0-alpha14"]
|
||||
[org.clojure/tools.logging "0.3.1"]
|
||||
[funcool/suricatta "1.3.1"]
|
||||
[funcool/promesa "1.8.0"]
|
||||
[funcool/catacumba "2.1.0"]
|
||||
[funcool/cuerdas "2.0.3"]
|
||||
[funcool/datoteka "1.0.0"]
|
||||
|
||||
[org.clojure/data.xml "0.1.0-beta2"]
|
||||
[org.jsoup/jsoup "1.10.2"]
|
||||
|
||||
[hiccup "1.0.5"]
|
||||
[org.im4java/im4java "1.4.0"]
|
||||
|
||||
[org.slf4j/slf4j-simple "1.7.24"]
|
||||
[com.layerware/hugsql-core "0.4.7"
|
||||
:exclusions [org.clojure/tools.reader]]
|
||||
[niwinz/migrante "0.1.0"]
|
||||
|
||||
[buddy/buddy-sign "2.2.0"]
|
||||
[buddy/buddy-hashers "1.3.0"]
|
||||
|
||||
[org.xerial.snappy/snappy-java "1.1.2.6"]
|
||||
[com.github.spullara.mustache.java/compiler "0.9.4"]
|
||||
[org.postgresql/postgresql "42.0.0"]
|
||||
[org.quartz-scheduler/quartz "2.2.3"]
|
||||
[org.quartz-scheduler/quartz-jobs "2.2.3"]
|
||||
[commons-io/commons-io "2.5"]
|
||||
[com.draines/postal "2.0.2" :exclusions [commons-codec]]
|
||||
|
||||
[hikari-cp "1.7.5"]
|
||||
[mount "0.1.11"]
|
||||
[environ "1.1.0"]])
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 750 B After Width: | Height: | Size: 750 B |
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
@ -6,7 +6,7 @@
|
|||
|
||||
(ns uxbox.cli.collimp
|
||||
"Collection importer command line helper."
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[clojure.pprint :refer [pprint]]
|
||||
[clojure.java.io :as io]
|
||||
[mount.core :as mount]
|
||||
|
|
|
@ -40,9 +40,9 @@
|
|||
:database-name (lookup-env env :uxbox-database-name "uxbox")
|
||||
:database-server (lookup-env env :uxbox-database-server "localhost")
|
||||
:database-port (lookup-env env :uxbox-database-port 5432)
|
||||
:media-directory (lookup-env env :uxbox-media-directory "resources/media")
|
||||
:media-directory (lookup-env env :uxbox-media-directory "resources/public/media")
|
||||
:media-uri (lookup-env env :uxbox-media-uri "http://localhost:6060/media/")
|
||||
:assets-directory (lookup-env env :uxbox-assets-directory "resources/static")
|
||||
:assets-directory (lookup-env env :uxbox-assets-directory "resources/public/static")
|
||||
:assets-uri (lookup-env env :uxbox-assets-uri "http://localhost:6060/static/")
|
||||
|
||||
:email-reply-to (lookup-env env :uxbox-email-reply-to "no-reply@uxbox.io")
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>
|
||||
|
||||
(ns uxbox.frontend.auth
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[catacumba.core :as ct]
|
||||
[catacumba.http :as http]
|
||||
[promesa.core :as p]
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>
|
||||
|
||||
(ns uxbox.frontend.icons
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[promesa.core :as p]
|
||||
[catacumba.http :as http]
|
||||
[uxbox.util.spec :as us]
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>
|
||||
|
||||
(ns uxbox.frontend.images
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[promesa.core :as p]
|
||||
[catacumba.http :as http]
|
||||
[datoteka.storages :as st]
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
(ns uxbox.frontend.kvstore
|
||||
(:refer-clojure :exclude [update])
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[promesa.core :as p]
|
||||
[catacumba.http :as http]
|
||||
[uxbox.media :as media]
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>
|
||||
|
||||
(ns uxbox.frontend.pages
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[promesa.core :as p]
|
||||
[catacumba.http :as http]
|
||||
[uxbox.util.spec :as us]
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>
|
||||
|
||||
(ns uxbox.frontend.projects
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[promesa.core :as p]
|
||||
[catacumba.http :as http]
|
||||
[uxbox.util.spec :as us]
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
(ns uxbox.frontend.svgparse
|
||||
"A frontend exposed endpoints for svgparse functionality."
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[promesa.core :as p]
|
||||
[catacumba.http :as http]
|
||||
[uxbox.util.spec :as us]
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>
|
||||
|
||||
(ns uxbox.frontend.users
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[promesa.core :as p]
|
||||
[catacumba.http :as http]
|
||||
[datoteka.storages :as st]
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
(ns uxbox.images
|
||||
"Image postprocessing."
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[clojure.java.io :as io]
|
||||
[datoteka.storages :as st]
|
||||
[datoteka.core :as fs]
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>
|
||||
|
||||
(ns uxbox.services.auth
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[suricatta.core :as sc]
|
||||
[buddy.hashers :as hashers]
|
||||
[buddy.sign.jwt :as jwt]
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
(ns uxbox.services.icons
|
||||
"Icons library related services."
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[suricatta.core :as sc]
|
||||
[uxbox.util.spec :as us]
|
||||
[uxbox.sql :as sql]
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
(ns uxbox.services.images
|
||||
"Images library related services."
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[promesa.core :as p]
|
||||
[suricatta.core :as sc]
|
||||
[datoteka.storages :as st]
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>
|
||||
|
||||
(ns uxbox.services.kvstore
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[suricatta.core :as sc]
|
||||
[buddy.core.codecs :as codecs]
|
||||
[uxbox.config :as ucfg]
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>
|
||||
|
||||
(ns uxbox.services.pages
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[suricatta.core :as sc]
|
||||
[buddy.core.codecs :as codecs]
|
||||
[uxbox.config :as ucfg]
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>
|
||||
|
||||
(ns uxbox.services.projects
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[suricatta.core :as sc]
|
||||
[buddy.core.codecs :as codecs]
|
||||
[uxbox.config :as ucfg]
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>
|
||||
|
||||
(ns uxbox.services.svgparse
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[cuerdas.core :as str]
|
||||
[uxbox.util.spec :as us]
|
||||
[uxbox.services.core :as core]
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>
|
||||
|
||||
(ns uxbox.services.users
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[mount.core :as mount :refer (defstate)]
|
||||
[suricatta.core :as sc]
|
||||
[buddy.hashers :as hashers]
|
||||
|
|
3
backend/src/uxbox/test.clj
Normal file
|
@ -0,0 +1,3 @@
|
|||
(ns uxbox.test)
|
||||
|
||||
(defn kaka [] 1)
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
(ns uxbox.util.spec
|
||||
(:refer-clojure :exclude [keyword uuid vector boolean map set])
|
||||
(:require [clojure.spec :as s]
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[cuerdas.core :as str]
|
||||
[uxbox.util.exceptions :as ex])
|
||||
(:import java.time.Instant))
|
||||
|
|