diff --git a/lutim/.drone.yml b/lutim/.drone.yml new file mode 100644 index 0000000..11a0412 --- /dev/null +++ b/lutim/.drone.yml @@ -0,0 +1,21 @@ +pipeline: + build: + image: xataz/docker-drone-plugin + repo: xataz/lutim + action: build + volumes: + - /var/run/docker.sock:/var/run/docker.sock + + push: + image: xataz/docker-drone-plugin + repo: xataz/lutim + action: push + environment: + - UID=1000 + - GID=991 + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - /home/xataz/.docker/config.json:/docker/.docker/config.json + when: + branch: master + event: [push, tag, deployment] \ No newline at end of file diff --git a/lutim/Dockerfile b/lutim/Dockerfile new file mode 100644 index 0000000..661898e --- /dev/null +++ b/lutim/Dockerfile @@ -0,0 +1,69 @@ +FROM xataz/alpine:3.7 + +ARG LUTIM_VER=0.10.4 + +ENV GID=991 \ + UID=991 \ + CONTACT=contact@domain.tld \ + WEBROOT=/ \ + SECRET=e7c0b28877f7479fe6711720475dcbbd \ + MAX_FILE_SIZE=10000000000 \ + DEFAULT_DELAY=1 \ + MAX_DELAY=0 + +LABEL description="lutim based on alpine" \ + tags="latest 0.10.4 0.10 0" \ + maintainer="xataz " \ + build_ver="201806070431" + +RUN BUILD_DEPS="build-base \ + libressl-dev \ + ca-certificates \ + git \ + tar \ + perl-dev \ + libidn-dev \ + wget \ + postgresql-dev \ + gnupg \ + zlib-dev \ + mariadb-dev \ + perl-devel-checklib" \ + && apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.5/main ${BUILD_DEPS} \ + libressl \ + perl \ + libidn \ + perl-crypt-rijndael \ + perl-test-manifest \ + perl-dbi \ + imagemagick==6.9.6.8-r1 \ + imagemagick-dev==6.9.6.8-r1 \ + shared-mime-info \ + tini \ + su-exec \ + postgresql-libs \ + && echo | cpan \ + && cpan install Carton \ + && cd / \ + && git clone -b ${LUTIM_VER} https://git.framasoft.org/luc/lutim.git /usr/lutim \ + && echo "requires 'Image::Magick';" >> /usr/lutim/cpanfile \ + && echo "requires 'Mojolicious::Plugin::AssetPack::Backcompat';" >> /usr/lutim/cpanfile \ + && cd /usr/lutim \ + && rm -rf cpanfile.snapshot \ + && carton install \ + && apk del --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.5/main ${BUILD_DEPS} imagemagick-dev \ + && rm -rf /var/cache/apk/* /root/.cpan* /usr/lutim/local/cache/* + +VOLUME /usr/lutim/data/ /usr/lutim/files + +EXPOSE 8181 + +ADD lutim.conf /usr/lutim/lutim.conf +ADD startup /usr/local/bin/startup +RUN chmod +x /usr/local/bin/startup + +RUN addgroup lutim && adduser -H -s /bin/sh -D -G lutim lutim +RUN mkdir -p /usr/lutim/data /usr/lutim/files +RUN chown -R lutim:lutim /usr/lutim/ + +CMD ["/usr/local/bin/startup"] diff --git a/lutim/base.yml b/lutim/base.yml new file mode 100644 index 0000000..119ad2c --- /dev/null +++ b/lutim/base.yml @@ -0,0 +1,7 @@ +version: '2.2' +services: + lutim: + build: + context: . + dockerfile: Dockerfile + image: registry.yaltik.net/lutim:latest diff --git a/lutim/lutim.conf b/lutim/lutim.conf new file mode 100644 index 0000000..6b1c042 --- /dev/null +++ b/lutim/lutim.conf @@ -0,0 +1,24 @@ +{ + hypnotoad => { + listen => ['http://0.0.0.0:8181'], + }, + contact => '', + secrets => [''], + theme => 'default', + length => 8, + crypto_key_length => 8, + provis_step => 5, + provisioning => 100, + anti_flood_delay => 5, + max_file_size => , + default_delay => , + max_delay => , + always_encrypt => 1, + token_length => 24, + stats_day_num => 365, + keep_ip_during => 365, + policy_when_full => 'warn', + prefix => '', + db_path => '/usr/lutim/data/lutim.db', + delete_no_longer_viewed_files => 90 +}; diff --git a/lutim/startup b/lutim/startup new file mode 100644 index 0000000..cc5b1ec --- /dev/null +++ b/lutim/startup @@ -0,0 +1,15 @@ +#!/bin/sh + +# addgroup -g ${GID} lutim && adduser -H -s /bin/sh -D -G lutim -u ${UID} lutim +# +# mkdir -p /usr/lutim/data /usr/lutim/files +# chown -R lutim:lutim /usr/lutim/ + +sed -i -e 's||'${SECRET}'|' \ + -e 's||'${CONTACT}'|' \ + -e 's||'${MAX_FILE_SIZE}'|' \ + -e 's||'${WEBROOT}'|' \ + -e 's||'${DEFAULT_DELAY}'|' \ + -e 's||'${MAX_DELAY}'|' /usr/lutim/lutim.conf + +cd /usr/lutim && /usr/local/bin/carton exec hypnotoad -f /usr/lutim/script/lutim