summaryrefslogtreecommitdiff
path: root/ci/data
diff options
context:
space:
mode:
authorckonstanski <carlos.konstanski@olo.com>2025-11-22 14:19:22 -0700
committerckonstanski <carlos.konstanski@olo.com>2025-11-22 14:19:22 -0700
commit345b7c18f74af579693f82f6b760a7b49d13cb52 (patch)
treeb159cef817ba697de226b70c7d7dd30270491f4e /ci/data
parent182146b9198e31a31d455368024b7c5dcb3e8f06 (diff)
docker-compose
Diffstat (limited to 'ci/data')
-rw-r--r--ci/data/etc/ldapadmin/figwheel-main.edn34
-rw-r--r--ci/data/etc/ldapadmin/options.lisp11
-rw-r--r--ci/data/etc/sbclrc6
-rwxr-xr-xci/data/install-root.sh30
-rwxr-xr-xci/data/install-user-sbcl.sh10
-rw-r--r--ci/data/ldapadmin-starter.lisp7
-rwxr-xr-xci/data/start_app.sh42
7 files changed, 140 insertions, 0 deletions
diff --git a/ci/data/etc/ldapadmin/figwheel-main.edn b/ci/data/etc/ldapadmin/figwheel-main.edn
new file mode 100644
index 0000000..864266c
--- /dev/null
+++ b/ci/data/etc/ldapadmin/figwheel-main.edn
@@ -0,0 +1,34 @@
+;; Figwheel-main configuration options see: https://figwheel.org/config-options
+;; these will be overriden by the metadata config options in dev.cljs.edn build file
+{
+ ;; Set the server port https://figwheel.org/config-options#ring-server-options
+ ;; :ring-server-options {:port 9500}
+
+ ;; Change the target directory from the "target" to "resources"
+ ;; https://figwheel.org/config-options#target-dir
+ ;; :target-dir "resources"
+
+ ;; Server Ring Handler (optional) https://figwheel.org/docs/ring-handler.html
+ ;; If you want to embed a ring handler into the figwheel server, this
+ ;; is for simple ring servers
+ ;; :ring-handler hello_world.server/handler
+
+ ;; To be able to open files in your editor from the heads up display
+ ;; you will need to put a script on your path. This script will have
+ ;; to take a file path and a line number ie.
+ ;; in ~/bin/myfile-opener:
+ ;;
+ ;; #! /bin/sh
+ ;; emacsclient -n +$2:$3 $1
+ ;;
+ ;; :open-file-command "myfile-opener"
+
+ ;; if you are using emacsclient you can just use
+ ;; :open-file-command "emacsclient"
+
+ ;; Logging output gets printed to the REPL, if you want to redirect it to a file:
+ ;; :log-file "figwheel-main.log"
+
+ :target-dir "resources"
+ :open-url false
+}
diff --git a/ci/data/etc/ldapadmin/options.lisp b/ci/data/etc/ldapadmin/options.lisp
new file mode 100644
index 0000000..3d35ea0
--- /dev/null
+++ b/ci/data/etc/ldapadmin/options.lisp
@@ -0,0 +1,11 @@
+((:name "ldapadmin"
+ :url "http://localhost:3006"
+ :document-root "ldapadmin"
+ :title "LDAP Administration Tool"
+ :meta-description "LDAP Administration Tool"
+ :ldap (:ldap-host "ldap.pippiandcarlos.com"
+ :sslflag nil
+ :username "cn=Manager,dc=pippiandcarlos,dc=com"
+ :password "ayluvmiym"
+ :base-dn "dc=pippiandcarlos,dc=com"
+ :debug-mode nil)))
diff --git a/ci/data/etc/sbclrc b/ci/data/etc/sbclrc
new file mode 100644
index 0000000..3a931d0
--- /dev/null
+++ b/ci/data/etc/sbclrc
@@ -0,0 +1,6 @@
+;;; The following lines added by ql:add-to-init-file:
+#-quicklisp
+(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
+ (user-homedir-pathname))))
+ (when (probe-file quicklisp-init)
+ (load quicklisp-init)))
diff --git a/ci/data/install-root.sh b/ci/data/install-root.sh
new file mode 100755
index 0000000..1aacb79
--- /dev/null
+++ b/ci/data/install-root.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+echo 'APT::Acquire::Retries "3";' > /etc/apt/apt.conf.d/80-retries
+export DEBIAN_FRONTEND=noninteractive
+apt-get update
+apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade
+apt-get -y install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" aptitude
+aptitude -y install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" apt-transport-https ca-certificates software-properties-common language-pack-de
+update-ca-certificates
+aptitude update
+aptitude -y install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" sbcl sbcl-source leiningen dnsutils bind9-host vim curl wget rlwrap pass rsync sudo jq lsof zip unzip ldap-utils
+
+rsync -av /data/ /
+
+if (( OLO_UID != 0 )); then
+ userdel ubuntu || true
+ groupdel ubuntu || true
+ rm -rf /home/ubuntu || true
+ export HOMEDIR="/home/${OLO_USERNAME}"
+ groupadd -g "${OLO_GID}" "${OLO_GROUPNAME}" || OLO_GROUPNAME=$(grep -F "x:${OLO_GID}:" /etc/group | awk -F: '{print $1}')
+ useradd -s /bin/bash -m -u "${OLO_UID}" -g "${OLO_GROUPNAME}" "${OLO_USERNAME}" || OLO_USERNAME=$(grep -F "x:${OLO_UID}:" /etc/passwd | awk -F: '{print $1}')
+ SUDOERS_FILENAME="${OLO_USERNAME//\./_}"
+ echo "${OLO_USERNAME} ALL=(ALL) NOPASSWD: ALL" > "/etc/sudoers.d/${SUDOERS_FILENAME}"
+ chmod 0440 "/etc/sudoers.d/${SUDOERS_FILENAME}"
+ mkdir -p "${HOMEDIR}/.gnupg"
+ chown "${OLO_USERNAME}":"${OLO_GROUPNAME}" "${HOMEDIR}/.gnupg"
+ chmod 0700 "${HOMEDIR}/.gnupg"
+fi
+
+exit 0
diff --git a/ci/data/install-user-sbcl.sh b/ci/data/install-user-sbcl.sh
new file mode 100755
index 0000000..8ab05ea
--- /dev/null
+++ b/ci/data/install-user-sbcl.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+curl -o ~/quicklisp.lisp https://beta.quicklisp.org/quicklisp.lisp
+sbcl --load ~/quicklisp.lisp --eval "(quicklisp-quickstart:install)" --eval "(sb-ext:exit)"
+sbcl --eval "(loop for pkg in '(net-telent-date cl-ppcre uffi hunchentoot cl-log ironclad trivial-ldap cl-smtp drakma cl-json swank) do (ql:quickload (symbol-name pkg)))" --eval "(sb-ext:exit)"
+
+mkdir -p ~/.config/common-lisp
+echo "(:source-registry (:tree (:home \"common-lisp/systems\")) :inherit-configuration)" | tee ~/.config/common-lisp/source-registry.conf
+
+exit 0
diff --git a/ci/data/ldapadmin-starter.lisp b/ci/data/ldapadmin-starter.lisp
new file mode 100644
index 0000000..84cbd7a
--- /dev/null
+++ b/ci/data/ldapadmin-starter.lisp
@@ -0,0 +1,7 @@
+(load "/etc/sbclrc")
+(asdf:operate 'asdf:load-op 'swank)
+(setf swank::*loopback-interface* "0.0.0.0")
+(swank:create-server :port 4106 :dont-close t)
+(asdf:operate 'asdf:load-op 'ldapadmin)
+(in-package :ldapadmin)
+(ldapadmin)
diff --git a/ci/data/start_app.sh b/ci/data/start_app.sh
new file mode 100755
index 0000000..0b40f17
--- /dev/null
+++ b/ci/data/start_app.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+mkdir -p ~/common-lisp/systems ~/opt
+cd ~/opt
+git clone -b master git@ns:repos/ldapadmin.git
+git clone -b master git@github.com:ckonstanski/org-ckons-cljs.form.git
+git clone -b master git@github.com:ckonstanski/org-ckons-cljs.notifications
+git clone -b master git@github.com:ckonstanski/org-ckons-condition
+git clone -b master git@github.com:ckonstanski/org-ckons-core
+git clone -b master git@github.com:ckonstanski/org-ckons-http
+git clone -b master git@github.com:ckonstanski/org-ckons-json
+
+logdir="/var/log/lisp"
+mv -f ${logdir}/ldapadmin.log.1 ${logdir}/ldapadmin.log.2
+mv -f ${logdir}/${APPNAME}ldapadmin.log ${logdir}/ldapadmin.log.1
+
+pushd ~/common-lisp/systems
+ln -s ~/opt/ldapadmin/lisp/ldapadmin.asd ldapadmin.asd
+ln -s ~/opt/org-ckons-condition/org-ckons-condition.asd org-ckons-condition.asd
+ln -s ~/opt/org-ckons-core/org-ckons-core.asd org-ckons-core.asd
+ln -s ~/opt/org-ckons-file/org-ckons-file.asd org-ckons-file.asd
+ln -s ~/opt/org-ckons-http/org-ckons-http.asd org-ckons-http.asd
+ln -s ~/opt/org-ckons-json/org-ckons-json.asd org-ckons-json.asd
+popd
+
+pushd ~/opt/ldapadmin/lisp/webapps/ldapadmin/conf
+ln -s /etc/ldapadmin/options.lisp options.lisp
+popd
+
+pushd ~/opt/ldapadmin/lisp/webapps/ldapadmin/clojurescript/ldapadmin
+ln -s /etc/ldapadmin/figwheel-main.edn figwheel-main.edn
+mkdir checkouts
+pushd checkouts
+ln -s ~/opt/org-ckons-cljs.form org-ckons-cljs.form
+ln -s ~/opt/org-ckons-cljs.notifications org-ckons-cljs.notifications
+popd
+
+lein clean
+lein fig:build | tee /tmp/ldapadmin/lein.log &
+popd
+
+SBCL_HOME=/usr/lib/sbcl SBCL_SOURCE_ROOT=/usr/lib/sbcl/src exec sbcl --dynamic-space-size 256 --userinit /data/ldapadmin-starter.lisp | tee /tmp/ldapadmin/sbcl.log