mirror of
https://github.com/hoellen/dockerfiles.git
synced 2025-07-01 14:45:38 +00:00
initial commit
This commit is contained in:
44
lutim/Dockerfile
Normal file
44
lutim/Dockerfile
Normal file
@ -0,0 +1,44 @@
|
||||
FROM debian:jessie
|
||||
MAINTAINER Wonderfall <wonderfall@mondedie.fr>
|
||||
|
||||
ENV TINI_VER=0.9.0 \
|
||||
USERID=1000 \
|
||||
GROUPID=1000 \
|
||||
SECRET=ZyCnLAhYKBIJrukuKZZJ \
|
||||
CONTACT=contact@domain.tld \
|
||||
MAX_FILE_SIZE=100000000 \
|
||||
WEBROOT=/ \
|
||||
DOMAIN=domain.tld
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
wget \
|
||||
perl \
|
||||
make \
|
||||
gcc \
|
||||
ca-certificates \
|
||||
libssl-dev \
|
||||
shared-mime-info \
|
||||
perlmagick \
|
||||
&& cpan install Carton \
|
||||
&& mkdir /lutim && cd /lutim \
|
||||
&& wget -qO- https://github.com/ldidry/lutim/archive/master.tar.gz | tar xz --strip 1 \
|
||||
&& carton install \
|
||||
&& wget -q https://github.com/krallin/tini/releases/download/v$TINI_VER/tini_$TINI_VER.deb -P /tmp \
|
||||
&& dpkg -i /tmp/tini_$TINI_VER.deb \
|
||||
&& apt-get purge -y \
|
||||
wget \
|
||||
make \
|
||||
gcc \
|
||||
libssl-dev \
|
||||
ca-certificates \
|
||||
&& apt-get autoremove --purge -y && apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /root/.cpan* /lutim/local/cache/* /lutim/utilities /tmp/*
|
||||
|
||||
COPY run.sh /usr/local/bin/run.sh
|
||||
COPY lutim.conf /lutim/lutim.conf
|
||||
|
||||
RUN chmod +x /usr/local/bin/run.sh
|
||||
|
||||
EXPOSE 8181
|
||||
VOLUME /data /lutim/files
|
||||
CMD ["tini","--","run.sh"]
|
46
lutim/README.md
Normal file
46
lutim/README.md
Normal file
@ -0,0 +1,46 @@
|
||||
## wonderfall/lutim
|
||||
[](https://imagelayers.io/?images=wonderfall/lutim:latest 'Get your own badge on imagelayers.io')
|
||||
|
||||

|
||||
|
||||
#### What is this?
|
||||
LUTIM means Let's Upload That Image.
|
||||
It stores images and allows you to see them, download them or share them on social networks. From version 0.5, the gif images can be displayed as animated gifs in Twitter, but you need a HTTPS server (Twitter requires that. Lutim detects if you have a HTTPS server and displays an static image twitter card if you don't);
|
||||
|
||||
Images are indefinitly stored unless you request that they will be deleted at first view or after 24 hours / one week / one month / one year.
|
||||
|
||||
#### Environment variables
|
||||
- **GROUPID** : lutim group id. *(default : 1000)*
|
||||
- **USERID** : lutim user id. *(default : 1000)*
|
||||
- **SECRET** : random string used to encrypt cookies. *(default : ZyCnLAhYKBIJrukuKZZJ)*
|
||||
- **CONTACT** : lutim contact. *(default : contact@domain.tld)*
|
||||
- **MAX_FILE_SIZE** : maximum file size of an uploaded file in bytes. *(default : 1GB)*
|
||||
- **WEBROOT** : webroot of lutim. *(default : /)*
|
||||
- **DOMAIN** : your domain used with lutim *(default : domain.tld)*
|
||||
|
||||
*Tip : you can use the following command to generate SECRET.*
|
||||
`cat /dev/urandom | tr -dc 'a-zA-Z' | fold -w 20 | head -n 1`
|
||||
|
||||
#### Volumes
|
||||
- **/data** : where lutim's database is stored.
|
||||
- **/lutim/files** : location of uploaded files.
|
||||
|
||||
#### Reverse proxy
|
||||
https://github.com/Wonderfall/dockerfiles/tree/master/reverse
|
||||
|
||||
#### Docker compose (example)
|
||||
```
|
||||
lutim:
|
||||
image: wonderfall/lutim
|
||||
environment:
|
||||
- GROUPID=1000
|
||||
- USERID=1000
|
||||
- SECRET=ZyCnLAhYKBIJrukuKZZJ
|
||||
- CONTACT=user@domain.tld
|
||||
- MAX_FILE_SIZE=100000000
|
||||
- WEBROOT=/
|
||||
- DOMAIN=domain.tld
|
||||
volumes:
|
||||
- /mnt/docker/lutim/data:/data
|
||||
- /mnt/docker/lutim/files:/lutim/files
|
||||
```
|
24
lutim/lutim.conf
Normal file
24
lutim/lutim.conf
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
hypnotoad => {
|
||||
listen => ['http://0.0.0.0:8181'],
|
||||
},
|
||||
contact => '<contact>',
|
||||
secrets => ['<secret>'],
|
||||
length => 8,
|
||||
crypto_key_length => 8,
|
||||
provis_step => 5,
|
||||
provisioning => 100,
|
||||
anti_flood_delay => 5,
|
||||
max_file_size => <max_file_size>,
|
||||
allowed_domains => ['http://<domain>', 'https://<domain>'],
|
||||
default_delay => 1,
|
||||
max_delay => 0,
|
||||
always_encrypt => 1,
|
||||
token_length => 24,
|
||||
stats_day_num => 365,
|
||||
keep_ip_during => 365,
|
||||
policy_when_full => 'warn',
|
||||
prefix => '<webroot>',
|
||||
db_path => '/data/lutim.db',
|
||||
delete_no_longer_viewed_files => 90
|
||||
};
|
11
lutim/run.sh
Normal file
11
lutim/run.sh
Normal file
@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
deluser lutim
|
||||
addgroup --gid $GROUPID lutim
|
||||
adduser --system --shell /bin/sh --no-create-home --ingroup lutim --uid $USERID lutim
|
||||
sed -i -e 's/<contact>/'$CONTACT'/g' \
|
||||
-e 's/<secret>/'$SECRET'/g' \
|
||||
-e 's/<max_file_size>/'$MAX_FILE_SIZE'/g' \
|
||||
-e 's/<domain>/'$DOMAIN'/g' \
|
||||
-e 's|<webroot>|'$WEBROOT'|g' /lutim/lutim.conf
|
||||
chown -R lutim:lutim /lutim /data
|
||||
cd /lutim && su lutim -c "carton exec hypnotoad -f /lutim/script/lutim"
|
Reference in New Issue
Block a user