aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--Dockerfile6
-rw-r--r--build.clj30
-rw-r--r--deps.edn10
-rw-r--r--docker-compose.yml10
-rw-r--r--src/pics/core.clj10
-rw-r--r--src/pics/handler/home.clj5
-rw-r--r--src/pics/routes.clj10
8 files changed, 85 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..56bdfe5
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.cpcache
+.idea
+target
+.nrepl-port
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..5dfc5d5
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,6 @@
+FROM clojure
+RUN mkdir -p /usr/src/app
+WORKDIR /usr/src/app
+COPY . .
+RUN clojure -T:build uber
+CMD ["java", "-jar", "target/pics-standalone.jar"]
diff --git a/build.clj b/build.clj
new file mode 100644
index 0000000..298dbd0
--- /dev/null
+++ b/build.clj
@@ -0,0 +1,30 @@
+(ns build
+ (:require [clojure.tools.build.api :as b]
+ [clojure.edn :as edn]))
+
+(def project (-> (edn/read-string (slurp "deps.edn"))
+ :aliases :neil :project))
+
+(def class-dir "target/classes")
+(def basis (b/create-basis {:project "deps.edn"}))
+
+(def lib (:name project))
+(def version (:version project))
+
+(def uber-file (format "target/%s-standalone.jar" (name lib)))
+(def jar-file (format "target/%s.jar" (name lib)))
+
+(defn clean [_]
+ (b/delete {:path "target"}))
+
+(defn uber [_]
+ (clean nil)
+ (b/copy-dir {:src-dirs ["src" "resources"]
+ :target-dir class-dir})
+ (b/compile-clj {:basis basis
+ :src-dirs ["src"]
+ :class-dir class-dir})
+ (b/uber {:class-dir class-dir
+ :uber-file uber-file
+ :basis basis
+ :main 'pics.core}))
diff --git a/deps.edn b/deps.edn
new file mode 100644
index 0000000..0094f30
--- /dev/null
+++ b/deps.edn
@@ -0,0 +1,10 @@
+{:paths ["src"]
+ :deps {http-kit/http-kit {:mvn/version "2.8.0"}
+ metosin/reitit {:mvn/version "0.8.0"}
+ lynxeyes/dotenv {:mvn/version "1.1.0"}}
+ :aliases
+ {:neil {:project {:name pics/pics
+ :version "0.0.1"}}
+ :build {:deps {io.github.clojure/tools.build {:git/tag "v0.10.8"
+ :git/sha "2fdfd66"}}
+ :ns-default build}}}
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..b6deacb
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,10 @@
+services:
+ pics-server:
+ build: .
+ networks:
+ caddy-link:
+
+networks:
+ caddy-link:
+ external: true
+ name: caddy_caddy-link
diff --git a/src/pics/core.clj b/src/pics/core.clj
new file mode 100644
index 0000000..68826f9
--- /dev/null
+++ b/src/pics/core.clj
@@ -0,0 +1,10 @@
+(ns pics.core
+ (:require [org.httpkit.server :as http-server]
+ [pics.routes :as proutes]
+ [dotenv :as env])
+ (:gen-class))
+
+(defn -main [& args]
+ (let [port (or (env/env "PORT") 8080)]
+ (println (str "Starting server on port " port "..."))
+ (http-server/run-server proutes/ring-handler {:port port})))
diff --git a/src/pics/handler/home.clj b/src/pics/handler/home.clj
new file mode 100644
index 0000000..a02ec33
--- /dev/null
+++ b/src/pics/handler/home.clj
@@ -0,0 +1,5 @@
+(ns pics.handler.home
+ (:require [ring.util.response :as ruresp]))
+
+(defn handle [req]
+ (ruresp/not-found "Coming soon..."))
diff --git a/src/pics/routes.clj b/src/pics/routes.clj
new file mode 100644
index 0000000..67793f9
--- /dev/null
+++ b/src/pics/routes.clj
@@ -0,0 +1,10 @@
+(ns pics.routes
+ (:require [reitit.ring :as rring]
+
+ [pics.handler.home :as phhome]))
+
+(def ^:private router
+ (rring/router [["/" {:get {:handler phhome/handle}}]]))
+
+(def ring-handler
+ (rring/ring-handler router))