UNMAINTAINED
No files matched your search
@@ -0,0 +1,32 @@
|
||||
FROM alpine:3.6
|
||||
|
||||
ARG VERSION=6.2
|
||||
|
||||
ENV UID=991 GID=991
|
||||
|
||||
WORKDIR /libresonic
|
||||
|
||||
RUN echo "@community https://nl.alpinelinux.org/alpine/v3.6/community" >> /etc/apk/repositories \
|
||||
&& apk -U upgrade && apk add \
|
||||
ffmpeg \
|
||||
su-exec \
|
||||
libressl \
|
||||
ca-certificates \
|
||||
openjdk8-jre@community \
|
||||
tini \
|
||||
&& wget -q https://github.com/Libresonic/libresonic/releases/download/v${VERSION}/libresonic-v${VERSION}.war -O libresonic.war \
|
||||
&& rm -f /var/cache/apk/*
|
||||
|
||||
COPY run.sh /usr/local/bin/run.sh
|
||||
|
||||
RUN chmod +x /usr/local/bin/run.sh
|
||||
|
||||
EXPOSE 4040
|
||||
|
||||
VOLUME /data /musics /playlists /podcasts
|
||||
|
||||
LABEL description="Open source media streamer" \
|
||||
libresonic="Libresonic v$VERSION" \
|
||||
maintainer="Wonderfall <wonderfall@targaryen.house>"
|
||||
|
||||
CMD ["run.sh"]
|
||||
@@ -0,0 +1,42 @@
|
||||
## wonderfall/libresonic
|
||||
|
||||

|
||||
|
||||
#### What is Libresonic?
|
||||
Libresonic is an open-source web-based media streamer and jukebox. Supports MP3, OGG, AAC and other streamable audio and video formats. Indeed, this build comes with **transcoding abilities**. More info here : https://libresonic.github.io/
|
||||
|
||||
#### Build-time variables
|
||||
- **VERSION** : version of libresonic
|
||||
|
||||
#### Environment variables
|
||||
- **GID** : subsonic group id.
|
||||
- **UID** : subsonic user id.
|
||||
- **HTTPS_PORT** : set if you access Libresonic through HTTPS *(default : 0 = disabled)*
|
||||
|
||||
#### Volumes
|
||||
- **/musics** : your music files
|
||||
- **/data** : subsonic data
|
||||
|
||||
#### Port
|
||||
- 4040
|
||||
|
||||
#### Reverse proxy
|
||||
https://github.com/Wonderfall/dockerfiles/tree/master/reverse
|
||||
|
||||
https://github.com/hardware/mailserver/wiki/Reverse-proxy-configuration
|
||||
|
||||
Libresonic does not support SSL/TLS by itself. If you want to use Libresonic through https, this is what I'm using :
|
||||
|
||||
```
|
||||
location / {
|
||||
proxy_pass http://libresonic:4040;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-Server $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto https;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_max_temp_file_size 0;
|
||||
proxy_redirect http:// https://;
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
|
||||
mkdir -p /data/transcode
|
||||
ln -s /usr/bin/ffmpeg /data/transcode/ffmpeg
|
||||
ln -s /usr/bin/lame /data/transcode/lame
|
||||
|
||||
chown -R $UID:$GID /data /playlists /libresonic
|
||||
|
||||
exec su-exec $UID:$GID tini -- \
|
||||
java -Xmx256m \
|
||||
-Dserver.host=0.0.0.0 \
|
||||
-Dserver.port=4040 \
|
||||
-Dserver.contextPath=/ \
|
||||
-Dlibresonic.home=/data \
|
||||
-Dlibresonic.host=0.0.0.0 \
|
||||
-Dlibresonic.port=4040 \
|
||||
-Dlibresonic.contextPath=/ \
|
||||
-Dlibresonic.defaultMusicFolder=/musics \
|
||||
-Dlibresonic.defaultPodcastFolder=/podcasts \
|
||||
-Dlibresonic.defaultPlaylistFolder=/playlists \
|
||||
-Djava.awt.headless=true \
|
||||
-jar libresonic.war
|
||||
@@ -0,0 +1,58 @@
|
||||
FROM alpine:edge
|
||||
|
||||
ARG LYCHEE_VERSION=3.1.6
|
||||
|
||||
ENV UID=991 GID=991
|
||||
|
||||
RUN echo "@testing https://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
|
||||
&& BUILD_DEPS=" \
|
||||
imagemagick-dev \
|
||||
tar \
|
||||
libressl \
|
||||
ca-certificates \
|
||||
build-base \
|
||||
autoconf \
|
||||
pcre-dev \
|
||||
libtool" \
|
||||
&& apk -U upgrade && apk add \
|
||||
${BUILD_DEPS} \
|
||||
nginx \
|
||||
php7.1-mbstring@testing \
|
||||
php7.1-fpm@testing \
|
||||
php7.1-exif@testing \
|
||||
php7.1-gd@testing \
|
||||
php7.1-json@testing \
|
||||
php7.1-mysqli@testing \
|
||||
php7.1-zip@testing \
|
||||
php7.1-session@testing \
|
||||
php7.1-pear@testing \
|
||||
php7.1-dev@testing \
|
||||
s6 \
|
||||
su-exec \
|
||||
imagemagick \
|
||||
&& pecl install imagick \
|
||||
&& echo "extension=imagick.so" > /etc/php7.1/conf.d/imagick.ini \
|
||||
&& sed -i -e "s/max_execution_time = 30/max_execution_time = 200/g" \
|
||||
-e "s/post_max_size = 8M/post_max_size = 100M/g" \
|
||||
-e "s/upload_max_filesize = 2M/upload_max_filesize = 20M/g" \
|
||||
-e "s/memory_limit = 256M/memory_limit = 512M/g" \
|
||||
/etc/php7.1/php.ini \
|
||||
&& mkdir /lychee && cd /lychee \
|
||||
&& wget -qO- https://github.com/electerious/Lychee/archive/v${LYCHEE_VERSION}.tar.gz | tar xz --strip 1 \
|
||||
&& apk del ${BUILD_DEPS} php7.1-pear php7.1-dev \
|
||||
&& rm -rf /var/cache/apk/* /tmp/*
|
||||
|
||||
COPY nginx.conf /etc/nginx/nginx.conf
|
||||
COPY php-fpm.conf /etc/php7.1/php-fpm.conf
|
||||
COPY s6.d /etc/s6.d
|
||||
COPY run.sh /usr/local/bin/run.sh
|
||||
|
||||
RUN chmod +x /usr/local/bin/run.sh /etc/s6.d/*/* /etc/s6.d/.s6-svscan/*
|
||||
|
||||
VOLUME /lychee/uploads /lychee/data
|
||||
|
||||
EXPOSE 8888
|
||||
|
||||
LABEL maintainer="Wonderfall <wonderfall@targaryen.house>"
|
||||
|
||||
CMD ["run.sh"]
|
||||
@@ -0,0 +1,26 @@
|
||||
## wonderfall/lychee
|
||||
|
||||

|
||||
|
||||
#### What is this?
|
||||
Lychee is a free photo-management tool, which runs on your server or web-space. Installing is a matter of seconds. Upload, manage and share photos like from a native application. Lychee comes with everything you need and all your photos are stored securely.
|
||||
|
||||
#### Features
|
||||
- Based on Alpine Linux.
|
||||
- nginx + PHP7.
|
||||
- Active Imagemagick + pecl ext.
|
||||
|
||||
#### Build-time variables
|
||||
- **LYCHEE_VERSION** : version of Lychee.
|
||||
- **IMAGICK_EXT_VERSION** : version of imagick pecl extension.
|
||||
|
||||
#### Environment variables
|
||||
- **UID** : lychee user id *(default : 991)*.
|
||||
- **GID** : lychee group id *(default : 991)*.
|
||||
|
||||
#### Volumes
|
||||
- **/lychee/uploads** : uploads.
|
||||
- **/lychee/data** : data files.
|
||||
|
||||
#### Ports
|
||||
- **8888** [(reverse proxy!)](https://github.com/hardware/mailserver/wiki/Reverse-proxy-configuration)
|
||||
@@ -0,0 +1,88 @@
|
||||
worker_processes auto;
|
||||
pid /tmp/nginx.pid;
|
||||
daemon off;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
use epoll;
|
||||
}
|
||||
|
||||
http {
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
access_log off;
|
||||
error_log /tmp/ngx_error.log error;
|
||||
|
||||
sendfile on;
|
||||
keepalive_timeout 15;
|
||||
keepalive_disable msie6;
|
||||
keepalive_requests 100;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
server_tokens off;
|
||||
|
||||
fastcgi_temp_path /tmp/fastcgi 1 2;
|
||||
client_body_temp_path /tmp/client_body 1 2;
|
||||
proxy_temp_path /tmp/proxy 1 2;
|
||||
uwsgi_temp_path /tmp/uwsgi 1 2;
|
||||
scgi_temp_path /tmp/scgi 1 2;
|
||||
|
||||
gzip on;
|
||||
gzip_comp_level 5;
|
||||
gzip_min_length 512;
|
||||
gzip_buffers 4 8k;
|
||||
gzip_proxied any;
|
||||
gzip_vary on;
|
||||
gzip_disable "msie6";
|
||||
gzip_types
|
||||
text/css
|
||||
text/javascript
|
||||
text/xml
|
||||
text/plain
|
||||
text/x-component
|
||||
application/javascript
|
||||
application/x-javascript
|
||||
application/json
|
||||
application/xml
|
||||
application/rss+xml
|
||||
application/vnd.ms-fontobject
|
||||
font/truetype
|
||||
font/opentype
|
||||
image/svg+xml;
|
||||
|
||||
server {
|
||||
listen 8888;
|
||||
root /lychee;
|
||||
index index.php index.html;
|
||||
client_max_body_size 100M;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.html;
|
||||
}
|
||||
|
||||
location ~* \.(?:ico|css|js|gif|jpe?g|png|ttf|woff)\$ {
|
||||
access_log off;
|
||||
expires 30d;
|
||||
add_header Pragma public;
|
||||
add_header Cache-Control "public, mustrevalidate, proxy-revalidate";
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
fastcgi_split_path_info ^(.*\.php)(/.*)?$;
|
||||
fastcgi_pass unix:/tmp/php-fpm.sock;
|
||||
fastcgi_index index.php;
|
||||
include fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_intercept_errors off;
|
||||
fastcgi_buffer_size 16k;
|
||||
fastcgi_buffers 4 16k;
|
||||
}
|
||||
|
||||
location ~ /\.ht {
|
||||
deny all;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
[global]
|
||||
daemonize = no
|
||||
|
||||
[www]
|
||||
listen = /tmp/php-fpm.sock
|
||||
pm = dynamic
|
||||
pm.max_children = 5
|
||||
pm.start_servers = 2
|
||||
pm.min_spare_servers = 1
|
||||
pm.max_spare_servers = 3
|
||||
chdir = /
|
||||
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
mkdir /lychee/uploads/big /lychee/uploads/import /lychee/uploads/medium /lychee/uploads/thumb
|
||||
chown -R $UID:$GID /lychee /etc/nginx /etc/php7.1 /var/log /var/lib/nginx /tmp /etc/s6.d
|
||||
exec su-exec $UID:$GID /bin/s6-svscan /etc/s6.d
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
exec nginx
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
exec php-fpm7.1
|
||||
@@ -0,0 +1,93 @@
|
||||
FROM alpine:3.6
|
||||
|
||||
ARG VERSION=master
|
||||
ARG REPOSITORY=tootsuite/mastodon
|
||||
ARG LIBICONV_VERSION=1.15
|
||||
|
||||
ENV UID=991 GID=991 \
|
||||
RUN_DB_MIGRATIONS=true \
|
||||
SIDEKIQ_WORKERS=5 \
|
||||
RAILS_SERVE_STATIC_FILES=true \
|
||||
RAILS_ENV=production \
|
||||
NODE_ENV=production \
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/mastodon/bin
|
||||
|
||||
WORKDIR /mastodon
|
||||
|
||||
# Install dependencies
|
||||
RUN apk -U upgrade \
|
||||
&& apk add \
|
||||
ca-certificates \
|
||||
ffmpeg \
|
||||
file \
|
||||
git \
|
||||
icu-libs \
|
||||
imagemagick \
|
||||
libidn \
|
||||
libpq \
|
||||
libressl \
|
||||
nodejs-current-npm \
|
||||
nodejs-current \
|
||||
protobuf \
|
||||
ruby \
|
||||
ruby-bigdecimal \
|
||||
ruby-io-console \
|
||||
ruby-irb \
|
||||
ruby-json \
|
||||
s6 \
|
||||
su-exec \
|
||||
|
||||
# Install build dependencies
|
||||
&& apk add -t build-dependencies \
|
||||
build-base \
|
||||
icu-dev \
|
||||
libffi-dev \
|
||||
libidn-dev \
|
||||
libtool \
|
||||
postgresql-dev \
|
||||
protobuf-dev \
|
||||
python \
|
||||
ruby-dev \
|
||||
ruby-rdoc \
|
||||
tar \
|
||||
yarn \
|
||||
|
||||
# Update CA certificates
|
||||
&& update-ca-certificates \
|
||||
|
||||
# Install GNU Libiconv
|
||||
&& wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz -O /tmp/libiconv-${LIBICONV_VERSION}.tar.gz \
|
||||
&& mkdir /tmp/src && tar xzf /tmp/libiconv-${LIBICONV_VERSION}.tar.gz -C /tmp/src \
|
||||
&& cd /tmp/src/libiconv-${LIBICONV_VERSION} \
|
||||
&& ./configure --prefix=/usr/local \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) && make install && libtool --finish /usr/local/lib \
|
||||
|
||||
# Install Mastodon
|
||||
&& cd /mastodon \
|
||||
&& wget -qO- https://github.com/${REPOSITORY}/archive/${VERSION}.tar.gz | tar xz --strip 1 \
|
||||
&& gem install bundler \
|
||||
&& bundle install -j$(getconf _NPROCESSORS_ONLN) --deployment --clean --no-cache --without test development \
|
||||
&& yarn --ignore-optional --pure-lockfile \
|
||||
|
||||
# Precompile Mastodon assets
|
||||
&& SECRET_KEY_BASE=$(rake secret) SMTP_FROM_ADDRESS= rake assets:precompile \
|
||||
&& mv public/assets /tmp/assets && mv public/packs /tmp/packs \
|
||||
|
||||
# Clean
|
||||
&& npm -g cache clean && yarn cache clean \
|
||||
&& apk del build-dependencies \
|
||||
&& rm -rf /var/cache/apk/* /tmp/src
|
||||
|
||||
COPY rootfs /
|
||||
|
||||
RUN chmod +x /usr/local/bin/* /etc/s6.d/*/* /etc/s6.d/.s6-svscan/*
|
||||
|
||||
VOLUME /mastodon/public/system /mastodon/public/assets /mastodon/public/packs /mastodon/log
|
||||
|
||||
EXPOSE 3000 4000
|
||||
|
||||
LABEL maintainer="Wonderfall <wonderfall@targaryen.house>" \
|
||||
description="A GNU Social-compatible microblogging server"
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/run"]
|
||||
CMD ["/bin/s6-svscan", "/etc/s6.d"]
|
||||
@@ -0,0 +1,93 @@
|
||||
FROM alpine:3.6
|
||||
|
||||
ARG VERSION=v1.6.0
|
||||
ARG REPOSITORY=tootsuite/mastodon
|
||||
ARG LIBICONV_VERSION=1.15
|
||||
|
||||
ENV UID=991 GID=991 \
|
||||
RUN_DB_MIGRATIONS=true \
|
||||
SIDEKIQ_WORKERS=5 \
|
||||
RAILS_SERVE_STATIC_FILES=true \
|
||||
RAILS_ENV=production \
|
||||
NODE_ENV=production \
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/mastodon/bin
|
||||
|
||||
WORKDIR /mastodon
|
||||
|
||||
# Install dependencies
|
||||
RUN apk -U upgrade \
|
||||
&& apk add \
|
||||
ca-certificates \
|
||||
ffmpeg \
|
||||
file \
|
||||
git \
|
||||
icu-libs \
|
||||
imagemagick \
|
||||
libidn \
|
||||
libpq \
|
||||
libressl \
|
||||
nodejs-current-npm \
|
||||
nodejs-current \
|
||||
protobuf \
|
||||
ruby \
|
||||
ruby-bigdecimal \
|
||||
ruby-io-console \
|
||||
ruby-irb \
|
||||
ruby-json \
|
||||
s6 \
|
||||
su-exec \
|
||||
|
||||
# Install build dependencies
|
||||
&& apk add -t build-dependencies \
|
||||
build-base \
|
||||
icu-dev \
|
||||
libffi-dev \
|
||||
libidn-dev \
|
||||
libtool \
|
||||
postgresql-dev \
|
||||
protobuf-dev \
|
||||
python \
|
||||
ruby-dev \
|
||||
ruby-rdoc \
|
||||
tar \
|
||||
yarn \
|
||||
|
||||
# Update CA certificates
|
||||
&& update-ca-certificates \
|
||||
|
||||
# Install GNU Libiconv
|
||||
&& wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz -O /tmp/libiconv-${LIBICONV_VERSION}.tar.gz \
|
||||
&& mkdir /tmp/src && tar xzf /tmp/libiconv-${LIBICONV_VERSION}.tar.gz -C /tmp/src \
|
||||
&& cd /tmp/src/libiconv-${LIBICONV_VERSION} \
|
||||
&& ./configure --prefix=/usr/local \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) && make install && libtool --finish /usr/local/lib \
|
||||
|
||||
# Install Mastodon
|
||||
&& cd /mastodon \
|
||||
&& wget -qO- https://github.com/${REPOSITORY}/archive/${VERSION}.tar.gz | tar xz --strip 1 \
|
||||
&& gem install bundler \
|
||||
&& bundle install -j$(getconf _NPROCESSORS_ONLN) --deployment --clean --no-cache --without test development \
|
||||
&& yarn --ignore-optional --pure-lockfile \
|
||||
|
||||
# Precompile Mastodon assets
|
||||
&& SECRET_KEY_BASE=$(rake secret) SMTP_FROM_ADDRESS= rake assets:precompile \
|
||||
&& mv public/assets /tmp/assets && mv public/packs /tmp/packs \
|
||||
|
||||
# Clean
|
||||
&& npm -g cache clean && yarn cache clean \
|
||||
&& apk del build-dependencies \
|
||||
&& rm -rf /var/cache/apk/* /tmp/src
|
||||
|
||||
COPY rootfs /
|
||||
|
||||
RUN chmod +x /usr/local/bin/* /etc/s6.d/*/* /etc/s6.d/.s6-svscan/*
|
||||
|
||||
VOLUME /mastodon/public/system /mastodon/public/assets /mastodon/public/packs /mastodon/log
|
||||
|
||||
EXPOSE 3000 4000
|
||||
|
||||
LABEL maintainer="Wonderfall <wonderfall@targaryen.house>" \
|
||||
description="A GNU Social-compatible microblogging server"
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/run"]
|
||||
CMD ["/bin/s6-svscan", "/etc/s6.d"]
|
||||
@@ -0,0 +1,96 @@
|
||||
FROM alpine:3.6
|
||||
|
||||
ARG VERSION=v1.6.0
|
||||
ARG REPOSITORY=tootsuite/mastodon
|
||||
ARG LIBICONV_VERSION=1.15
|
||||
|
||||
ENV UID=991 GID=991 \
|
||||
RUN_DB_MIGRATIONS=true \
|
||||
SIDEKIQ_WORKERS=5 \
|
||||
RAILS_SERVE_STATIC_FILES=true \
|
||||
RAILS_ENV=production \
|
||||
NODE_ENV=production \
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/mastodon/bin
|
||||
|
||||
WORKDIR /mastodon
|
||||
|
||||
COPY targaryen /tmp/targaryen
|
||||
|
||||
# Install dependencies
|
||||
RUN apk -U upgrade \
|
||||
&& apk add \
|
||||
ca-certificates \
|
||||
ffmpeg \
|
||||
file \
|
||||
git \
|
||||
icu-libs \
|
||||
imagemagick \
|
||||
libidn \
|
||||
libpq \
|
||||
libressl \
|
||||
nodejs-current-npm \
|
||||
nodejs-current \
|
||||
protobuf \
|
||||
ruby \
|
||||
ruby-bigdecimal \
|
||||
ruby-io-console \
|
||||
ruby-irb \
|
||||
ruby-json \
|
||||
s6 \
|
||||
su-exec \
|
||||
|
||||
# Install build dependencies
|
||||
&& apk add -t build-dependencies \
|
||||
build-base \
|
||||
icu-dev \
|
||||
libffi-dev \
|
||||
libidn-dev \
|
||||
libtool \
|
||||
postgresql-dev \
|
||||
protobuf-dev \
|
||||
python \
|
||||
ruby-dev \
|
||||
ruby-rdoc \
|
||||
tar \
|
||||
yarn \
|
||||
|
||||
# Update CA certificates
|
||||
&& update-ca-certificates \
|
||||
|
||||
# Install GNU Libiconv
|
||||
&& wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz -O /tmp/libiconv-${LIBICONV_VERSION}.tar.gz \
|
||||
&& mkdir /tmp/src && tar xzf /tmp/libiconv-${LIBICONV_VERSION}.tar.gz -C /tmp/src \
|
||||
&& cd /tmp/src/libiconv-${LIBICONV_VERSION} \
|
||||
&& ./configure --prefix=/usr/local \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) && make install && libtool --finish /usr/local/lib \
|
||||
|
||||
# Install Mastodon
|
||||
&& cd /mastodon \
|
||||
&& wget -qO- https://github.com/${REPOSITORY}/archive/${VERSION}.tar.gz | tar xz --strip 1 \
|
||||
&& cp -R /tmp/targaryen/* . && chmod +x targaryen.sh && ./targaryen.sh \
|
||||
&& gem install bundler \
|
||||
&& bundle install -j$(getconf _NPROCESSORS_ONLN) --deployment --clean --no-cache --without test development \
|
||||
&& yarn --ignore-optional --pure-lockfile \
|
||||
|
||||
# Precompile Mastodon assets
|
||||
&& SECRET_KEY_BASE=$(rake secret) SMTP_FROM_ADDRESS= rake assets:precompile \
|
||||
&& mv public/assets /tmp/assets && mv public/packs /tmp/packs \
|
||||
|
||||
# Clean
|
||||
&& npm -g cache clean --force && yarn cache clean \
|
||||
&& apk del build-dependencies \
|
||||
&& rm -rf /var/cache/apk/* /tmp/src
|
||||
|
||||
COPY rootfs /
|
||||
|
||||
RUN chmod +x /usr/local/bin/* /etc/s6.d/*/* /etc/s6.d/.s6-svscan/*
|
||||
|
||||
VOLUME /mastodon/public/system /mastodon/public/assets /mastodon/public/packs /mastodon/log
|
||||
|
||||
EXPOSE 3000 4000
|
||||
|
||||
LABEL maintainer="Wonderfall <wonderfall@targaryen.house>" \
|
||||
description="A GNU Social-compatible microblogging server"
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/run"]
|
||||
CMD ["/bin/s6-svscan", "/etc/s6.d"]
|
||||
@@ -0,0 +1,65 @@
|
||||
## wonderfall/mastodon
|
||||
|
||||

|
||||
|
||||
A GNU Social-compatible microblogging server : https://github.com/tootsuite/mastodon
|
||||
|
||||
#### Why this image?
|
||||
This image is not the official one. The main difference you can notice is that all processes (web, streaming, sidekiq) are running in a single container, thanks to s6 (a supervision suite). Therefore it's easier to deploy, but not recommended for scaling on more than one machine.
|
||||
|
||||
#### Features
|
||||
- Based on Alpine Linux 3.6.
|
||||
- As lightweight as possible.
|
||||
- All-in-one container (s6).
|
||||
- Assets are precompiled.
|
||||
- Database migrations can be run at startup.
|
||||
- No root processes.
|
||||
|
||||
#### Docker Hub tags
|
||||
- **master** : latest code for adventurers (builds daily on Docker Hub)
|
||||
- **stable** : latest stable version (builds weekly on Docker Hub)
|
||||
- **targaryen** : Targaryen-themed stable version (builds weekly on Docker Hub)
|
||||
|
||||
#### Build-time variables
|
||||
- **VERSION** : version of Mastodon, can be `v1.4.1` or `master`. *(default : master)*
|
||||
- **REPOSITORY** : location of the code *(default : tootsuite/mastodon)*
|
||||
|
||||
#### Environment variables you should change
|
||||
- **UID** : mastodon user id *(default : 991)*
|
||||
- **GID** : mastodon group id *(default : 991)*
|
||||
- **RUN_DB_MIGRATIONS** : run `rake db:migrate` at startup *(default : true)*
|
||||
- **SIDEKIQ_WORKERS** : number of Sidekiq workers *(default : 5)*
|
||||
- Other environment variables : https://github.com/tootsuite/mastodon/blob/master/.env.production.sample
|
||||
|
||||
#### Volumes
|
||||
- **/mastodon/public/system** : shit like media attachments, avatars, etc.
|
||||
- **/mastodon/public/assets** : Mastodon assets
|
||||
- **/mastodon/public/packs** : Mastodon assets
|
||||
- **/mastodon/log** : Mastodon logfiles (mount if you prefer to)
|
||||
|
||||
#### Ports
|
||||
- **3000** : Mastodon web
|
||||
- **4000** : Mastodon streaming
|
||||
|
||||
#### docker-compose sample
|
||||
|
||||
```
|
||||
mastodon:
|
||||
image: wonderfall/mastodon:stable
|
||||
restart: always
|
||||
container_name: mastodon
|
||||
env_file: /home/docker/mastodon/.env.production
|
||||
environment:
|
||||
- WEB_CONCURRENCY=16
|
||||
- MAX_THREADS=20
|
||||
- SIDEKIQ_WORKERS=25
|
||||
- RUN_DB_MIGRATIONS=true
|
||||
links:
|
||||
- mastodon-pgb
|
||||
- mastodon-redis
|
||||
volumes:
|
||||
- /home/docker/mastodon/public/system:/mastodon/public/system
|
||||
- /home/docker/mastodon/public/assets:/mastodon/public/assets
|
||||
- /home/docker/mastodon/public/packs:/mastodon/public/packs
|
||||
```
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
exit 0
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
cd /mastodon
|
||||
exec bundle exec sidekiq -c $SIDEKIQ_WORKERS -q default -q push -q pull -q mailers > ./log/sidekiq.log 2>&1
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
cd /mastodon
|
||||
exec npm run start > ./log/streaming.log 2>&1
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
cd /mastodon
|
||||
exec bundle exec puma -C config/puma.rb > ./log/web.log 2>&1
|
||||
@@ -0,0 +1,56 @@
|
||||
#!/bin/sh
|
||||
|
||||
### 1. Adds local user (UID and GID are provided from environment variables).
|
||||
### 2. Moves precompiled assets into them.
|
||||
### 3. Updates permissions, except for ./public/system (should be chown on previous installations).
|
||||
### NOTE : this can take a long time if overlay2 is the storage-driver (issue #3194).
|
||||
### 4. If $RUN_DB_MIGRATIONS is set to true, runs the database migrations task.
|
||||
### 5. Executes the command as that user.
|
||||
|
||||
echo "
|
||||
---------------------------------------------
|
||||
_____ _ _
|
||||
| |___ ___| |_ ___ _| |___ ___
|
||||
| | | | .'|_ -| _| . | . | . | |
|
||||
|_|_|_|__,|___|_| |___|___|___|_|_|
|
||||
|
||||
A GNU Social-compatible microblogging server
|
||||
https://github.com/tootsuite/mastodon
|
||||
17j2g7vpgHhLuXhN4bueZFCvdxxieyRVWd
|
||||
---------------------------------------------
|
||||
UID/GID settings
|
||||
---------------------------------------------
|
||||
User ID : ${UID}
|
||||
Group ID : ${GID}
|
||||
---------------------------------------------
|
||||
Logs location
|
||||
---------------------------------------------
|
||||
Sidekiq : /mastodon/log/sidekiq.log
|
||||
Streaming : /mastodon/log/streaming.log
|
||||
Web : /mastodon/log/web.log
|
||||
---------------------------------------------
|
||||
"
|
||||
|
||||
echo "Creating mastodon user..."
|
||||
addgroup -g ${GID} mastodon &>/dev/null
|
||||
adduser -h /mastodon -s /bin/sh -D -G mastodon -u ${UID} mastodon &>/dev/null
|
||||
|
||||
echo "Moving assets to volumes..."
|
||||
cp -r /tmp/assets/* public/assets &>/dev/null
|
||||
cp -r /tmp/packs/* public/packs &>/dev/null
|
||||
|
||||
echo "Updating permissions, this can take a while..."
|
||||
find /mastodon -path /mastodon/public/system -prune -o -not -user mastodon -not -group mastodon -print0 | xargs -0 chown -f mastodon:mastodon
|
||||
chown -R mastodon:mastodon /etc/s6.d
|
||||
|
||||
if [ "$RUN_DB_MIGRATIONS" == "true" ]; then
|
||||
echo "Running database migrations task..."
|
||||
su-exec mastodon:mastodon rake db:migrate
|
||||
fi
|
||||
|
||||
echo "Executing process(es)..."
|
||||
if [ '$@' == '' ]; then
|
||||
exec su-exec mastodon:mastodon /bin/s6-svscan /etc/s6.d
|
||||
else
|
||||
exec su-exec mastodon:mastodon "$@"
|
||||
fi
|
||||
|
After Width: | Height: | Size: 11 KiB |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!-- Generator: Gravit.io --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="379.9954764015122 390.0165425701057 517.9909528030244 517.9909528030244" width="517.9909528030244" height="517.9909528030244"><path d=" M 379.9954764015122 649.0120189716179 C 379.9954764015122 506.06852543356774 496.0474592649741 390.01654257010574 638.9909528030244 390.0165425701057 C 781.9344463410745 390.0165425701057 897.9864292045365 506.06852543356763 897.9864292045365 649.0120189716177 C 897.9864292045365 791.9555125096679 781.9344463410746 908.00749537313 638.9909528030245 908.00749537313 C 496.0474592649743 908.00749537313 379.9954764015122 791.9555125096681 379.9954764015122 649.0120189716179 Z " fill="rgb(34,34,34)"/><path d=" M 533.14 432 L 533.72 432.6 C 533.72 432.6 536.3199999999999 432.62 538.22 433.08 C 540.12 433.55 542.92 434.71 544.12 434.71 C 545.3199999999999 434.71 547.96 433.81 548.6 432.83 C 549.27 431.81 549.38 431.55 549.38 431.55 C 549.38 431.55 548.38 431.55 545.84 431.65 C 543.28 431.7 542.54 431.58 540.58 431.09 C 538.6 430.59 536.71 430.09 535.26 430.45 C 533.8100000000001 430.79999999999995 533.14 432.02 533.14 432.02 M 564.64 445.34 C 564.64 445.34 566.99 448.71 568.6800000000001 450.03999999999996 C 570.36 451.40999999999997 572.9200000000001 452.79999999999995 574.31 452.79999999999995 C 575.75 452.79999999999995 577.64 452.2 577.64 452.2 C 577.64 452.2 575.28 451.2 574.06 449.37 C 572.84 447.57 570.63 444.35 568.83 444.27 C 567 444.2 564.65 445.34 564.65 445.34 M 552.25 437.58 C 552.25 437.58 554.55 438.67999999999995 555.87 439.58 C 557.1700000000001 440.51 558.52 441.98 560.37 441.98 C 562.24 441.98 566.0699999999999 439.48 566.0699999999999 439.48 C 566.0699999999999 439.48 565.3199999999999 439.64 563.75 438.90999999999997 C 562.21 438.18 559.88 435.71 557.95 435.45 C 555.95 435.15 553.61 435.55 552.8199999999999 436.2 C 552.05 436.83 552.25 437.56 552.25 437.56 M 574.8299999999999 458.06 C 574.8299999999999 458.06 575.91 459.15999999999997 577.13 462.65999999999997 C 578.36 466.18 579.37 468.59000000000003 581.8299999999999 470.15999999999997 C 584.31 471.73 586.55 471.86 586.55 471.86 C 586.55 471.86 585.3 471.36 585.1 469.65999999999997 C 584.86 467.98 584.92 464.46 583.6 462.56 C 582.22 460.65999999999997 581.55 459.86 579.02 458.92 C 576.52 457.96000000000004 574.8199999999999 458.07 574.8199999999999 458.07 M 581.66 477.6 C 581.66 477.6 582.56 479.08000000000004 582.66 481.35 C 582.79 483.59000000000003 582.79 488.47 583.84 490.47 C 584.88 492.51 589.44 495.09000000000003 589.44 495.09000000000003 C 589.44 495.09000000000003 588.34 493.09000000000003 588.52 490.41 C 588.69 487.76 590.72 484.97 587.47 481.41 C 584.24 477.79 583.31 477.85 582.85 477.71000000000004 C 582.38 477.53000000000003 581.65 477.59000000000003 581.65 477.59000000000003 M 583.15 497.29 C 583.4 497.41 587.3199999999999 499.89 588.4300000000001 501.51 C 589.5699999999999 503.13 589.73 506.59000000000003 589.5699999999999 508.13 C 589.4300000000001 509.63 588.41 511.65000000000003 588.64 512.53 C 588.88 513.4300000000001 589.38 514.61 589.38 514.61 C 589.38 514.61 586.3 513.33 584.96 510.75 C 583.66 508.13 583.51 502.03000000000003 583.28 500.31000000000006 C 583.01 498.63 583.16 497.29 583.16 497.29 M 584.76 536.79 C 584.76 536.79 580.43 532.54 580.0799999999999 528.73 C 579.73 524.9300000000001 581.45 519.13 581.45 519.13 C 581.45 519.13 585.95 523.03 585.95 527.11 C 585.95 531.1800000000001 584.77 536.78 584.77 536.78 M 578.99 537.38 C 578.99 537.38 581.99 539.04 582.9399999999999 542.0799999999999 C 583.91 545.18 583.0699999999999 548.66 582.6099999999999 550.38 C 582.14 552.12 582.1099999999999 552.84 582.31 553.28 C 582.49 553.71 582.8699999999999 553.95 582.8699999999999 553.95 C 582.8699999999999 553.95 581.8199999999999 554.8199999999999 579.9699999999999 552.03 C 578.0699999999999 549.23 577.17 547.03 577.49 544.3 C 577.8399999999999 541.57 578.99 537.38 578.99 537.38 M 576.9699999999999 556.04 C 576.9699999999999 556.04 580.25 557.29 580.9499999999999 560.24 C 581.6499999999999 563.19 580.9499999999999 566.59 581.25 568.94 C 581.55 571.34 581.75 572.98 582.0699999999999 573.48 L 582.77 574.52 C 582.77 574.52 579.01 572.0799999999999 578.52 570.89 C 577.9999999999999 569.71 577.1199999999999 568.75 577.1199999999999 564.86 C 577.1199999999999 560.99 576.9799999999999 556.06 576.9799999999999 556.06 M 580.3499999999999 579.16 C 580.3499999999999 579.16 583.55 580.3399999999999 584.9699999999999 582.0899999999999 C 586.42 583.86 586.8699999999999 585.52 587.53 587.06 C 588.2299999999999 588.56 588.8299999999999 589.53 589.68 590.16 C 590.48 590.8 590.9 591.01 590.9 591.01 C 590.9 591.01 588.5 591.1099999999999 586.8599999999999 590.66 C 585.2099999999999 590.26 583.06 586.46 582.5999999999999 585.63 C 582.13 584.8499999999999 580.3299999999999 580.63 580.1999999999999 580 C 580 579.4 579.92 579.02 579.9Line truncated
|
||||
|
After Width: | Height: | Size: 306 KiB |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!-- Generator: Gravit.io --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="379.9954764015122 390.0165425701057 517.9909528030244 517.9909528030244" width="517.9909528030244" height="517.9909528030244"><path d=" M 379.9954764015122 649.0120189716179 C 379.9954764015122 506.06852543356774 496.0474592649741 390.01654257010574 638.9909528030244 390.0165425701057 C 781.9344463410745 390.0165425701057 897.9864292045365 506.06852543356763 897.9864292045365 649.0120189716177 C 897.9864292045365 791.9555125096679 781.9344463410746 908.00749537313 638.9909528030245 908.00749537313 C 496.0474592649743 908.00749537313 379.9954764015122 791.9555125096681 379.9954764015122 649.0120189716179 Z " fill="rgb(34,34,34)"/><path d=" M 533.14 432 L 533.72 432.6 C 533.72 432.6 536.3199999999999 432.62 538.22 433.08 C 540.12 433.55 542.92 434.71 544.12 434.71 C 545.3199999999999 434.71 547.96 433.81 548.6 432.83 C 549.27 431.81 549.38 431.55 549.38 431.55 C 549.38 431.55 548.38 431.55 545.84 431.65 C 543.28 431.7 542.54 431.58 540.58 431.09 C 538.6 430.59 536.71 430.09 535.26 430.45 C 533.8100000000001 430.79999999999995 533.14 432.02 533.14 432.02 M 564.64 445.34 C 564.64 445.34 566.99 448.71 568.6800000000001 450.03999999999996 C 570.36 451.40999999999997 572.9200000000001 452.79999999999995 574.31 452.79999999999995 C 575.75 452.79999999999995 577.64 452.2 577.64 452.2 C 577.64 452.2 575.28 451.2 574.06 449.37 C 572.84 447.57 570.63 444.35 568.83 444.27 C 567 444.2 564.65 445.34 564.65 445.34 M 552.25 437.58 C 552.25 437.58 554.55 438.67999999999995 555.87 439.58 C 557.1700000000001 440.51 558.52 441.98 560.37 441.98 C 562.24 441.98 566.0699999999999 439.48 566.0699999999999 439.48 C 566.0699999999999 439.48 565.3199999999999 439.64 563.75 438.90999999999997 C 562.21 438.18 559.88 435.71 557.95 435.45 C 555.95 435.15 553.61 435.55 552.8199999999999 436.2 C 552.05 436.83 552.25 437.56 552.25 437.56 M 574.8299999999999 458.06 C 574.8299999999999 458.06 575.91 459.15999999999997 577.13 462.65999999999997 C 578.36 466.18 579.37 468.59000000000003 581.8299999999999 470.15999999999997 C 584.31 471.73 586.55 471.86 586.55 471.86 C 586.55 471.86 585.3 471.36 585.1 469.65999999999997 C 584.86 467.98 584.92 464.46 583.6 462.56 C 582.22 460.65999999999997 581.55 459.86 579.02 458.92 C 576.52 457.96000000000004 574.8199999999999 458.07 574.8199999999999 458.07 M 581.66 477.6 C 581.66 477.6 582.56 479.08000000000004 582.66 481.35 C 582.79 483.59000000000003 582.79 488.47 583.84 490.47 C 584.88 492.51 589.44 495.09000000000003 589.44 495.09000000000003 C 589.44 495.09000000000003 588.34 493.09000000000003 588.52 490.41 C 588.69 487.76 590.72 484.97 587.47 481.41 C 584.24 477.79 583.31 477.85 582.85 477.71000000000004 C 582.38 477.53000000000003 581.65 477.59000000000003 581.65 477.59000000000003 M 583.15 497.29 C 583.4 497.41 587.3199999999999 499.89 588.4300000000001 501.51 C 589.5699999999999 503.13 589.73 506.59000000000003 589.5699999999999 508.13 C 589.4300000000001 509.63 588.41 511.65000000000003 588.64 512.53 C 588.88 513.4300000000001 589.38 514.61 589.38 514.61 C 589.38 514.61 586.3 513.33 584.96 510.75 C 583.66 508.13 583.51 502.03000000000003 583.28 500.31000000000006 C 583.01 498.63 583.16 497.29 583.16 497.29 M 584.76 536.79 C 584.76 536.79 580.43 532.54 580.0799999999999 528.73 C 579.73 524.9300000000001 581.45 519.13 581.45 519.13 C 581.45 519.13 585.95 523.03 585.95 527.11 C 585.95 531.1800000000001 584.77 536.78 584.77 536.78 M 578.99 537.38 C 578.99 537.38 581.99 539.04 582.9399999999999 542.0799999999999 C 583.91 545.18 583.0699999999999 548.66 582.6099999999999 550.38 C 582.14 552.12 582.1099999999999 552.84 582.31 553.28 C 582.49 553.71 582.8699999999999 553.95 582.8699999999999 553.95 C 582.8699999999999 553.95 581.8199999999999 554.8199999999999 579.9699999999999 552.03 C 578.0699999999999 549.23 577.17 547.03 577.49 544.3 C 577.8399999999999 541.57 578.99 537.38 578.99 537.38 M 576.9699999999999 556.04 C 576.9699999999999 556.04 580.25 557.29 580.9499999999999 560.24 C 581.6499999999999 563.19 580.9499999999999 566.59 581.25 568.94 C 581.55 571.34 581.75 572.98 582.0699999999999 573.48 L 582.77 574.52 C 582.77 574.52 579.01 572.0799999999999 578.52 570.89 C 577.9999999999999 569.71 577.1199999999999 568.75 577.1199999999999 564.86 C 577.1199999999999 560.99 576.9799999999999 556.06 576.9799999999999 556.06 M 580.3499999999999 579.16 C 580.3499999999999 579.16 583.55 580.3399999999999 584.9699999999999 582.0899999999999 C 586.42 583.86 586.8699999999999 585.52 587.53 587.06 C 588.2299999999999 588.56 588.8299999999999 589.53 589.68 590.16 C 590.48 590.8 590.9 591.01 590.9 591.01 C 590.9 591.01 588.5 591.1099999999999 586.8599999999999 590.66 C 585.2099999999999 590.26 583.06 586.46 582.5999999999999 585.63 C 582.13 584.8499999999999 580.3299999999999 580.63 580.1999999999999 580 C 580 579.4 579.92 579.02 579.9Line truncated
|
||||
|
After Width: | Height: | Size: 306 KiB |
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 714 176" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
|
||||
<path d="M160.555,105.431C158.142,117.838 138.957,131.414 116.921,134.045C105.43,135.418 94.117,136.676 82.054,136.124C62.324,135.22 46.756,131.414 46.756,131.414C46.756,133.335 46.875,135.164 47.111,136.874C49.676,156.344 66.419,157.511 82.277,158.055C98.284,158.603 112.535,154.108 112.535,154.108L113.194,168.58C113.194,168.58 101.997,174.591 82.054,175.696C71.055,176.301 57.4,175.42 41.494,171.211C6.999,162.08 1.066,125.31 0.159,88C-0.119,76.923 0.052,66.476 0.052,57.741C0.052,19.589 25.049,8.406 25.049,8.406C37.652,2.618 59.28,0.184 81.764,0L82.316,0C104.8,0.184 126.441,2.618 139.045,8.406C139.045,8.406 164.041,19.589 164.041,57.741C164.041,57.741 164.354,85.889 160.555,105.431" style="fill:rgb(202,0,0);fill-rule:nonzero;"/>
|
||||
<path d="M34.658,48.494C34.658,42.94 39.16,38.439 44.713,38.439C50.266,38.439 54.768,42.94 54.768,48.494C54.768,54.047 50.266,58.549 44.713,58.549C39.16,58.549 34.658,54.047 34.658,48.494M178.865,60.7L178.865,106.895L160.564,106.895L160.564,62.057C160.564,52.605 156.586,47.809 148.631,47.809C139.837,47.809 135.429,53.5 135.429,64.752L135.429,89.293L117.235,89.293L117.235,64.752C117.235,53.5 112.826,47.809 104.032,47.809C96.077,47.809 92.1,52.605 92.1,62.057L92.1,106.895L73.799,106.895L73.799,60.7C73.799,51.259 76.202,43.756 81.031,38.205C86.011,32.655 92.532,29.81 100.626,29.81C109.992,29.81 117.085,33.409 121.772,40.609L126.332,48.251L130.891,40.609C135.58,33.409 142.671,29.81 152.039,29.81C160.132,29.81 166.652,32.655 171.632,38.205C176.461,43.756 178.865,51.259 178.865,60.7M241.913,83.664C245.689,79.674 247.508,74.649 247.508,68.589C247.508,62.529 245.689,57.504 241.913,53.661C238.277,49.67 233.659,47.75 228.064,47.75C222.468,47.75 217.852,49.67 214.215,53.661C210.578,57.504 208.759,62.529 208.759,68.589C208.759,74.649 210.578,79.674 214.215,83.664C217.852,87.506 222.468,89.427 228.064,89.427C233.659,89.427 238.277,87.506 241.913,83.664M247.508,31.639L265.554,31.639L265.554,105.539L247.508,105.539L247.508,96.817C242.053,104.06 234.498,107.607 224.707,107.607C215.334,107.607 207.36,103.912 200.645,96.374C194.072,88.836 190.714,79.525 190.714,68.589C190.714,57.8 194.072,48.487 200.645,40.95C207.36,33.412 215.334,29.57 224.707,29.57C234.498,29.57 242.053,33.117 247.508,40.359L247.508,31.639L247.508,31.639ZM326.27,67.259C331.585,71.249 334.243,76.865 334.103,83.959C334.103,91.497 331.445,97.409 325.99,101.547C320.533,105.539 313.96,107.607 305.986,107.607C291.577,107.607 281.785,101.695 276.608,90.019L292.277,80.709C294.375,87.062 298.991,90.315 305.986,90.315C312.42,90.315 315.638,88.245 315.638,83.959C315.638,80.855 311.441,78.047 302.908,75.831C299.69,74.944 297.032,74.057 294.935,73.317C291.997,72.136 289.48,70.805 287.381,69.18C282.205,65.19 279.547,59.867 279.547,53.07C279.547,45.827 282.065,40.064 287.101,35.925C292.277,31.639 298.571,29.57 306.126,29.57C318.156,29.57 326.97,34.742 332.703,45.236L317.317,54.104C315.078,49.08 311.302,46.567 306.126,46.567C300.67,46.567 298.012,48.636 298.012,52.626C298.012,55.73 302.208,58.537 310.742,60.755C317.317,62.232 322.492,64.45 326.27,67.259M383.627,49.966L367.819,49.966L367.819,80.709C367.819,84.404 369.219,86.62 371.877,87.654C373.835,88.394 377.752,88.541 383.627,88.245L383.627,105.539C371.458,107.016 362.644,105.834 357.468,101.842C352.293,98 349.774,90.906 349.774,80.709L349.774,49.966L337.604,49.966L337.604,31.639L349.774,31.639L349.774,16.711L367.819,10.947L367.819,31.639L383.627,31.639L383.627,49.966ZM441.125,83.221C444.762,79.377 446.58,74.499 446.58,68.588C446.58,62.677 444.762,57.799 441.125,53.957C437.487,50.113 433.011,48.193 427.555,48.193C422.1,48.193 417.624,50.113 413.986,53.957C410.489,57.947 408.67,62.824 408.67,68.588C408.67,74.353 410.489,79.23 413.986,83.22C417.624,87.063 422.1,88.984 427.555,88.984C433.011,88.984 437.487,87.063 441.125,83.22M401.256,96.374C394.122,88.837 390.625,79.673 390.625,68.588C390.625,57.65 394.122,48.488 401.256,40.95C408.39,33.413 417.204,29.57 427.555,29.57C437.907,29.57 446.72,33.413 453.855,40.95C460.99,48.488 464.626,57.799 464.626,68.588C464.626,79.525 460.99,88.837 453.855,96.374C446.72,103.913 438.047,107.607 427.555,107.607C417.064,107.607 408.39,103.913 401.256,96.374M524.921,83.664C528.559,79.674 530.376,74.649 530.376,68.589C530.376,62.529 528.559,57.504 524.921,53.661C521.285,49.67 516.668,47.75 511.073,47.75C505.476,47.75 500.86,49.67 497.084,53.661C493.448,57.504 491.628,62.529 491.628,68.589C491.628,74.649 493.448,79.674 497.084,83.664C500.86,87.506 505.616,89.427 511.073,89.427C516.668,89.427 521.285,87.506 524.921,83.664M530.376,2.079L548.423,2.079L548.423,105.539L530.376,105.539L530.376,96.817C525.061,104.06 517.506,107.607 507.715,107.607C498.343,107.607 490.23,103.912 483.515,96.374C476.94,88.836 473.583,79.525 473.583,68.589C473.583,57.8 476.94,48.487 483.515,40.95C490.23,33.412 498.343,29.57 507.715,29.57C517.506,29.57 525.061,33.117 530.376,40.359L530.376,2.079L530.376,2.079ZM611.796,83.221C615.433,79.377 617.251,74.499 617.251,68.588C617.251,62.677 615.433,57.799 611.796,53.957C608.159,50.113 603.683,48.193 598.226,48.193C592.771,48.193 588.294,50.113 584.658,53.957C581.159,57.947 579.341,62.824 579.341,68.588C579.341,74.353 581.159,79.23 584.658,83.22C588.294,87.063 592.771,88.984 598.226,88.984C603.683,88.984 608.159,87.063 611.796,83.22M571.928,96.374C564.793,88.837 561.296,79.673 561.296,68.588C561.296,57.65 564.793,48.488 571.928,40.95C579.063,33.413 587.875,29.57 598.226,29.57C608.579,29.57 617.391,33.413 624.526,40.95C631.661,48.488 635.298,57.799 635.298,68.588C635.298,79.525 631.661,88.837 624.526,96.374C617.391,103.913 608.719,107.607 598.226,107.607C587.735,107.607 579.063,103.913 571.928,96.374M713.359,60.164L713.359,105.538L695.313,105.538L695.313,62.529C695.313,57.651 6Line truncated
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,29 @@
|
||||
// Commonly used web colors
|
||||
$black: #000000; // Black
|
||||
$white: #ffffff; // White
|
||||
$success-green: #79bd9a; // Padua
|
||||
$error-red: #df405a; // Cerise
|
||||
$warning-red: #ff5050; // Sunset Orange
|
||||
$gold-star: #ca8f04; // Dark Goldenrod
|
||||
|
||||
// Values from the classic Mastodon UI
|
||||
$classic-base-color: #282828; // Midnight Grey
|
||||
$classic-primary-color: #c89b9b; // Echo Red
|
||||
$classic-secondary-color: #e8d9d9; // Pattens Red
|
||||
$classic-highlight-color: #d92b2b; // Summer RedSky
|
||||
|
||||
// Variables for defaults in UI
|
||||
$base-shadow-color: $black !default;
|
||||
$base-overlay-background: $black !default;
|
||||
$base-border-color: $white !default;
|
||||
$simple-background-color: $white !default;
|
||||
$primary-text-color: $white !default;
|
||||
$valid-value-color: $success-green !default;
|
||||
$error-value-color: $error-red !default;
|
||||
|
||||
// Tell UI to use selected colors
|
||||
$ui-base-color: $classic-base-color !default; // Darkest
|
||||
$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest
|
||||
$ui-primary-color: $classic-primary-color !default; // Lighter
|
||||
$ui-secondary-color: $classic-secondary-color !default; // Lightest
|
||||
$ui-highlight-color: $classic-highlight-color !default; // Vibrant
|
||||
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 80 KiB |
@@ -0,0 +1,18 @@
|
||||
#!/bin/sh
|
||||
|
||||
### Increase number of characters / toot
|
||||
sed -i -e 's/500/800/g' \
|
||||
app/javascript/mastodon/features/compose/components/compose_form.js \
|
||||
app/validators/status_length_validator.rb \
|
||||
storybook/stories/character_counter.story.js \
|
||||
config/locales/*.yml
|
||||
|
||||
### Increase bio length
|
||||
sed -i -e 's/160/400/g' \
|
||||
app/javascript/packs/public.js \
|
||||
app/models/account.rb \
|
||||
app/views/settings/profiles/show.html.haml
|
||||
|
||||
### Dragon emoji
|
||||
sed -i -e 's/1f602/1f432/g' \
|
||||
app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js
|
||||
@@ -0,0 +1,120 @@
|
||||
FROM alpine:3.6
|
||||
|
||||
ARG RTORRENT_VER=0.9.6
|
||||
ARG LIBTORRENT_VER=0.13.6
|
||||
ARG MEDIAINFO_VER=0.7.99
|
||||
ARG FILEBOT_VER=4.7.9
|
||||
ARG CHROMAPRINT_VER=1.4.2
|
||||
ARG LIBZEN_VER=0.4.37
|
||||
ARG FLOOD_VER=1.0.0
|
||||
ARG BUILD_CORES
|
||||
|
||||
ENV UID=991 GID=991 \
|
||||
FLOOD_SECRET=supersecret \
|
||||
CONTEXT_PATH=/ \
|
||||
RTORRENT_SCGI=0 \
|
||||
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
|
||||
|
||||
ENV FILEBOT_RENAME_METHOD="symlink" \
|
||||
FILEBOT_RENAME_MOVIES="{n} ({y})" \
|
||||
FILEBOT_RENAME_SERIES="{n}/Season {s.pad(2)}/{s00e00} - {t}" \
|
||||
FILEBOT_RENAME_ANIMES="{n}/{e.pad(3)} - {t}" \
|
||||
FILEBOT_RENAME_MUSICS="{artist}/{album}/{fn}"
|
||||
|
||||
RUN NB_CORES=${BUILD_CORES-`getconf _NPROCESSORS_CONF`} \
|
||||
&& apk -U upgrade \
|
||||
&& apk add -t build-dependencies \
|
||||
build-base \
|
||||
git \
|
||||
libtool \
|
||||
automake \
|
||||
autoconf \
|
||||
wget \
|
||||
tar \
|
||||
xz \
|
||||
zlib-dev \
|
||||
cppunit-dev \
|
||||
libressl-dev \
|
||||
ncurses-dev \
|
||||
curl-dev \
|
||||
binutils \
|
||||
&& apk add \
|
||||
ca-certificates \
|
||||
curl \
|
||||
ncurses \
|
||||
libressl \
|
||||
gzip \
|
||||
zip \
|
||||
zlib \
|
||||
unrar \
|
||||
s6 \
|
||||
su-exec \
|
||||
python \
|
||||
nodejs \
|
||||
nodejs-npm \
|
||||
openjdk8-jre \
|
||||
java-jna-native \
|
||||
&& cd /tmp && mkdir libtorrent rtorrent \
|
||||
&& cd libtorrent && wget -qO- https://github.com/rakshasa/libtorrent/archive/${LIBTORRENT_VER}.tar.gz | tar xz --strip 1 \
|
||||
&& cd ../rtorrent && wget -qO- https://github.com/rakshasa/rtorrent/archive/${RTORRENT_VER}.tar.gz | tar xz --strip 1 \
|
||||
&& cd /tmp \
|
||||
&& git clone https://github.com/mirror/xmlrpc-c.git \
|
||||
&& git clone https://github.com/Rudde/mktorrent.git \
|
||||
&& git clone https://github.com/acoustid/chromaprint.git \
|
||||
&& cd /tmp/mktorrent && make -j ${NB_CORES} && make install \
|
||||
&& cd /tmp/xmlrpc-c/stable && ./configure && make -j ${NB_CORES} && make install \
|
||||
&& cd /tmp/libtorrent && ./autogen.sh && ./configure && make -j ${NB_CORES} && make install \
|
||||
&& cd /tmp/rtorrent && ./autogen.sh && ./configure --with-xmlrpc-c && make -j ${NB_CORES} && make install \
|
||||
&& cd /tmp \
|
||||
&& wget -q http://mediaarea.net/download/binary/mediainfo/${MEDIAINFO_VER}/MediaInfo_CLI_${MEDIAINFO_VER}_GNU_FromSource.tar.gz \
|
||||
&& wget -q http://mediaarea.net/download/binary/libmediainfo0/${MEDIAINFO_VER}/MediaInfo_DLL_${MEDIAINFO_VER}_GNU_FromSource.tar.gz \
|
||||
&& wget -q https://github.com/MediaArea/ZenLib/archive/v${LIBZEN_VER}.tar.gz -O libzen.tar.gz \
|
||||
&& tar xzf MediaInfo_DLL_${MEDIAINFO_VER}_GNU_FromSource.tar.gz \
|
||||
&& tar xzf MediaInfo_CLI_${MEDIAINFO_VER}_GNU_FromSource.tar.gz \
|
||||
&& tar xzf libzen.tar.gz \
|
||||
&& cd /tmp/ZenLib-${LIBZEN_VER}/Project/GNU/Library \
|
||||
&& ./autogen.sh && ./configure --prefix=/usr --enable-shared --disable-static && make && make install \
|
||||
&& cd /tmp/MediaInfo_DLL_GNU_FromSource && ./SO_Compile.sh \
|
||||
&& cd /tmp/MediaInfo_DLL_GNU_FromSource/ZenLib/Project/GNU/Library && make install \
|
||||
&& cd /tmp/MediaInfo_DLL_GNU_FromSource/MediaInfoLib/Project/GNU/Library && make install \
|
||||
&& cd /tmp/MediaInfo_CLI_GNU_FromSource && ./CLI_Compile.sh \
|
||||
&& cd /tmp/MediaInfo_CLI_GNU_FromSource/MediaInfo/Project/GNU/CLI && make install \
|
||||
&& strip -s /usr/local/bin/rtorrent \
|
||||
&& strip -s /usr/local/bin/mktorrent \
|
||||
&& strip -s /usr/local/bin/mediainfo \
|
||||
&& mkdir /filebot && cd /filebot \
|
||||
&& wget https://github.com/acoustid/chromaprint/releases/download/v${CHROMAPRINT_VER}/chromaprint-fpcalc-${CHROMAPRINT_VER}-linux-x86_64.tar.gz \
|
||||
&& tar xvf chromaprint-fpcalc-${CHROMAPRINT_VER}-linux-x86_64.tar.gz \
|
||||
&& mv chromaprint-fpcalc-${CHROMAPRINT_VER}-linux-x86_64/fpcalc /usr/local/bin \
|
||||
&& strip -s /usr/local/bin/fpcalc \
|
||||
&& wget -q https://netcologne.dl.sourceforge.net/project/filebot/filebot/FileBot_${FILEBOT_VER}/FileBot_${FILEBOT_VER}-portable.tar.xz \
|
||||
&& tar xJf FileBot_${FILEBOT_VER}-portable.tar.xz && rm FileBot_${FILEBOT_VER}-portable.tar.xz \
|
||||
&& mkdir /usr/flood && cd /usr/flood && wget -qO- https://github.com/jfurrow/flood/archive/v${FLOOD_VER}.tar.gz | tar xz --strip 1 \
|
||||
&& npm install --production \
|
||||
&& ln -sf /usr/local/lib/libmediainfo.so.0.0.0 /filebot/lib/x86_64/libmediainfo.so \
|
||||
&& ln -sf /usr/local/lib/libzen.la /filebot/lib/x86_64/libzen.so \
|
||||
&& ln -sf /usr/local/bin/mediainfo /usr/bin/mediainfo \
|
||||
&& apk del build-dependencies \
|
||||
&& rm -rf /var/cache/apk/* /tmp/*
|
||||
|
||||
COPY config.js /usr/flood/
|
||||
COPY s6.d /etc/s6.d
|
||||
COPY run.sh /usr/bin/
|
||||
COPY postdl /usr/bin/
|
||||
COPY postrm /usr/bin/
|
||||
COPY config.js /usr/flood/
|
||||
COPY rtorrent.rc /home/torrent/.rtorrent.rc
|
||||
|
||||
RUN chmod +x /usr/bin/* /etc/s6.d/*/* /etc/s6.d/.s6-svscan/*
|
||||
|
||||
VOLUME /data /flood-db
|
||||
|
||||
EXPOSE 3000 49184 49184/udp
|
||||
|
||||
LABEL description="BitTorrent client with WebUI front-end" \
|
||||
rtorrent="rTorrent BiTorrent client v$RTORRENT_VER" \
|
||||
libtorrent="libtorrent v$LIBTORRENT_VER" \
|
||||
filebot="Filebot v$FILEBOT_VER" \
|
||||
maintainer="Wonderfall <wonderfall@targaryen.house>"
|
||||
|
||||
CMD ["run.sh"]
|
||||
@@ -0,0 +1,40 @@
|
||||
## wonderfall/rtorrent-flood
|
||||
|
||||

|
||||
|
||||
#### Main features
|
||||
- Based on Alpine Linux.
|
||||
- rTorrent and libtorrent are compiled from source.
|
||||
- Provides by default a solid configuration.
|
||||
- [Filebot](http://www.filebot.net/) is included, and creates symlinks in `/data/Media`.
|
||||
- [Flood](https://github.com/jfurrow/flood), a modern web UI for rTorrent with a Node.js backend and React frontend.
|
||||
|
||||
#### Build-time variables
|
||||
- **RTORRENT_VER** : rtorrent version
|
||||
- **LIBTORRENT_VER** : libtorrent version
|
||||
- **MEDIAINFO_VER** : libmediainfo version
|
||||
- **FILEBOT_VER** : filebot version
|
||||
- **BUILD_CORES** : number of cores used during build
|
||||
|
||||
#### Environment variables
|
||||
- **UID** : user id (default : 991)
|
||||
- **GID** : group id (defaut : 991)
|
||||
- **FLOOD_SECRET** : flood secret key (defaut : mysupersecretkey) (CHANGE IT)
|
||||
- **CONTEXT_PATH** : context path (base_URI) (default : /)
|
||||
- **RTORRENT_SCGI** : SCGI port (default : 0 for use local socket)
|
||||
- **PKG_CONFIG_PATH** : `/usr/local/lib/pkgconfig` (don't touch)
|
||||
|
||||
### Note
|
||||
Run this container with tty mode enabled. In your `docker-compose.yml`, add `tty: true`. If you don't do this, [rtorrent will use 100% of CPU](https://github.com/Wonderfall/dockerfiles/issues/156).
|
||||
|
||||
#### Ports
|
||||
- **49184** (bind it).
|
||||
- **3000** [(reverse proxy!)](https://github.com/hardware/mailserver/wiki/Reverse-proxy-configuration)
|
||||
|
||||
#### Tags
|
||||
- **latest** : latest versions of rTorrent/libtorrent.
|
||||
- Use **$RTORRENT_VER-$LIBTORRENT_VER** to get specific versions of rTorrent/libtorrent.
|
||||
|
||||
#### Volumes
|
||||
- **/data** : your downloaded torrents, session files, symlinks...
|
||||
- **/flood-db** : Flood databases.
|
||||
@@ -0,0 +1,17 @@
|
||||
const CONFIG = {
|
||||
baseURI: '<CONTEXT_PATH>',
|
||||
dbCleanInterval: 1000 * 60 * 60,
|
||||
dbPath: '/flood-db/',
|
||||
floodServerPort: 3000,
|
||||
maxHistoryStates: 30,
|
||||
pollInterval: 1000 * 5,
|
||||
secret: '<FLOOD_SECRET>',
|
||||
scgi: {
|
||||
host: 'localhost',
|
||||
port: 5000,
|
||||
socket: true,
|
||||
socketPath: '/tmp/rtorrent.sock'
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = CONFIG;
|
||||
@@ -0,0 +1,27 @@
|
||||
#!/bin/sh
|
||||
|
||||
# rtorrent.rc
|
||||
# system.method.set_key=event.download.finished,filebot,"execute={rtorrent-postprocess.sh,$d.get_base_path=,$d.get_name=,$d.get_custom1=}"
|
||||
|
||||
TORRENT_PATH="$1"
|
||||
TORRENT_NAME="$2"
|
||||
TORRENT_LABEL="$(echo $3 | tr '[:upper:]' '[:lower:]')"
|
||||
|
||||
|
||||
case $TORRENT_LABEL in
|
||||
films|movies|film|movie)
|
||||
/filebot/filebot.sh --db TheMovieDB -script fn:amc --output "/data/Media" --action <FILEBOT_RENAME_METHOD> --conflict skip -non-strict --log-file amc.log --def excludeList=amc.excludes unsorted=y "movieFormat=/data/Media/Movies/<FILEBOT_RENAME_MOVIES>" "ut_dir=$TORRENT_PATH" "ut_kind=multi" "ut_title=$TORRENT_NAME" "ut_label=Movie" &
|
||||
;;
|
||||
music|musics|musique|musiques)
|
||||
/filebot/filebot.sh --db ID3 -script fn:amc --output "/data/Media" --action <FILEBOT_RENAME_METHOD> --conflict skip -non-strict --log-file amc.log --def excludeList=amc.excludes unsorted=y music=y "musicFormat=/data/Media/Music/<FILEBOT_RENAME_MUSICS>" "ut_dir=$TORRENT_PATH" "ut_kind=multi" "ut_title=$TORRENT_NAME" "ut_label=Music" &
|
||||
;;
|
||||
tv|"tv show"|"tv shows"|series|serie)
|
||||
/filebot/filebot.sh --db TheTVDB -script fn:amc --output "/data/Media" --action <FILEBOT_RENAME_METHOD> --conflict skip -non-strict --log-file amc.log --def excludeList=amc.excludes unsorted=y "seriesFormat=/data/Media/TV/<FILEBOT_RENAME_SERIES>" "ut_dir=$TORRENT_PATH" "ut_kind=multi" "ut_title=$TORRENT_NAME" "ut_label=TV Show" &
|
||||
;;
|
||||
anime|animes)
|
||||
/filebot/filebot.sh --db AniDB -script fn:amc --output "/data/Media" --action <FILEBOT_RENAME_METHOD> --conflict skip -non-strict --log-file amc.log --def excludeList=amc.excludes unsorted=y "animeFormat=/data/Media/Animes/<FILEBOT_RENAME_ANIMES>" "ut_dir=$TORRENT_PATH" "ut_kind=multi" "ut_title=$TORRENT_NAME" "ut_label=Anime" &
|
||||
;;
|
||||
*)
|
||||
/filebot/filebot.sh -script fn:amc --output "/data/Media" --action <FILEBOT_RENAME_METHOD> --conflict skip -non-strict --log-file amc.log --def excludeList=amc.excludes unsorted=y music=y "seriesFormat=/data/Media/TV/<FILEBOT_RENAME_SERIES>" "animeFormat=/data/Media/Animes/<FILEBOT_RENAME_ANIMES>" "movieFormat=/data/Media/Movies/<FILEBOT_RENAME_MOVIES>" "musicFormat=/data/Media/Music/<FILEBOT_RENAME_MUSICS>" "ut_dir=$TORRENT_PATH" "ut_kind=multi" "ut_title=$TORRENT_NAME" "ut_label=$TORRENT_LABEL" &
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
(sleep 10; find /data/Media -type l | while read in; do
|
||||
file "$in" | grep "broken symbolic link"
|
||||
if [ $? -ne 1 ]; then
|
||||
echo "Delete $in"
|
||||
rm -f "$in"
|
||||
fi
|
||||
done
|
||||
|
||||
find /data/Media/ -type d -empty -exec rm -r {} \;) >> /tmp/postrm.log &
|
||||
@@ -0,0 +1,28 @@
|
||||
scgi_local = /tmp/rtorrent.sock
|
||||
|
||||
encoding_list = UTF-8
|
||||
port_range = 49184-49184
|
||||
port_random = no
|
||||
check_hash = no
|
||||
directory = /data/torrents
|
||||
session = /data/.session
|
||||
encryption = allow_incoming, try_outgoing, enable_retry
|
||||
use_udp_trackers = yes
|
||||
dht = off
|
||||
peer_exchange = no
|
||||
|
||||
min_peers = 1
|
||||
max_peers = 100
|
||||
min_peers_seed = 1
|
||||
max_peers_seed = 50
|
||||
max_uploads = 15
|
||||
|
||||
network.xmlrpc.size_limit.set = 10000000
|
||||
|
||||
schedule = watch_directory,1,1,"load_start=/data/.watch/*.torrent"
|
||||
schedule = untied_directory,5,5,"stop_untied=/data/.watch/*.torrent"
|
||||
schedule = scgi_permission,0,0,"execute.nothrow=chmod,\"g+w,o=\",/tmp/rtorrent.sock"
|
||||
schedule = insufficient_disk_space,1,30,close_low_diskspace=500M
|
||||
|
||||
system.method.set_key=event.download.finished,filebot,"execute={/usr/bin/postdl,$d.get_base_path=,$d.get_name=,$d.get_custom1=}"
|
||||
system.method.set_key=event.download.erased,filebot_cleaner,"execute={/usr/bin/postrm}"
|
||||
@@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
|
||||
mkdir -p /data/torrents
|
||||
mkdir -p /data/.watch
|
||||
mkdir -p /data/.session
|
||||
mkdir -p /data/Media/Movies
|
||||
mkdir -p /data/Media/TV
|
||||
mkdir -p /data/Media/Animes
|
||||
mkdir -p /data/Media/Music
|
||||
|
||||
sed -i -e "s|<FLOOD_SECRET>|$FLOOD_SECRET|g" \
|
||||
-e "s|<CONTEXT_PATH>|$CONTEXT_PATH|g" /usr/flood/config.js
|
||||
|
||||
|
||||
sed -i -e 's#<FILEBOT_RENAME_MOVIES>#'"$FILEBOT_RENAME_MOVIES"'#' \
|
||||
-e 's#<FILEBOT_RENAME_METHOD>#'"$FILEBOT_RENAME_METHOD"'#' \
|
||||
-e 's#<FILEBOT_RENAME_MUSICS>#'"$FILEBOT_RENAME_MUSICS"'#' \
|
||||
-e 's#<FILEBOT_RENAME_SERIES>#'"$FILEBOT_RENAME_SERIES"'#' \
|
||||
-e 's#<FILEBOT_RENAME_ANIMES>#'"$FILEBOT_RENAME_ANIMES"'#' /usr/bin/postdl
|
||||
|
||||
rm -f /data/.session/rtorrent.lock
|
||||
|
||||
chown -R $UID:$GID /data /home/torrent /tmp /filebot /usr/flood /flood-db /etc/s6.d
|
||||
|
||||
if [ ${RTORRENT_SCGI} -ne 0 ]; then
|
||||
sed -i -e 's|^scgi_local.*$|scgi_port = 0.0.0.0:'${RTORRENT_SCGI}'|' /home/torrent/.rtorrent.rc
|
||||
sed -i -e 's|socket: true,|socket: false,|' -e 's|port: 5000,|port: '${RTORRENT_SCGI}',|' /usr/flood/config.js
|
||||
fi
|
||||
|
||||
exec su-exec $UID:$GID /bin/s6-svscan /etc/s6.d
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
cd /usr/flood
|
||||
exec /usr/flood/server/bin/www
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
export TERM="xterm"
|
||||
export HOME="/home/torrent"
|
||||
export PWD="/home/torrent"
|
||||
cd /home/torrent
|
||||
exec rtorrent
|
||||