mirror of
https://github.com/vimagick/dockerfiles.git
synced 2024-12-23 01:39:27 +02:00
add mediagoblin
This commit is contained in:
parent
e53889748c
commit
ee811a6574
@ -95,6 +95,7 @@ A collection of delicious docker recipes.
|
|||||||
- [x] ffserver :beetle:
|
- [x] ffserver :beetle:
|
||||||
- [x] icecast
|
- [x] icecast
|
||||||
- [x] live555
|
- [x] live555
|
||||||
|
- [x] mediagoblin
|
||||||
- [x] minidlna
|
- [x] minidlna
|
||||||
- [x] murmur
|
- [x] murmur
|
||||||
- [x] plex :moneybag:
|
- [x] plex :moneybag:
|
||||||
@ -105,6 +106,7 @@ A collection of delicious docker recipes.
|
|||||||
- [x] tesseract
|
- [x] tesseract
|
||||||
- [x] youtube-dl
|
- [x] youtube-dl
|
||||||
- [x] youtube-worker :beetle:
|
- [x] youtube-worker :beetle:
|
||||||
|
- [x] zoneminder
|
||||||
|
|
||||||
## Web
|
## Web
|
||||||
|
|
||||||
@ -135,7 +137,6 @@ A collection of delicious docker recipes.
|
|||||||
- [x] phpvirtualbox-arm
|
- [x] phpvirtualbox-arm
|
||||||
- [x] piwik
|
- [x] piwik
|
||||||
- [x] revive
|
- [x] revive
|
||||||
- [x] zoneminder
|
|
||||||
|
|
||||||
## Security
|
## Security
|
||||||
|
|
||||||
|
91
mediagoblin/Dockerfile
Normal file
91
mediagoblin/Dockerfile
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
#
|
||||||
|
# Dockerfile for mediagoblin
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM debian:jessie
|
||||||
|
MAINTAINER kev <noreply@easypi.info>
|
||||||
|
|
||||||
|
RUN set -xe \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install -y automake \
|
||||||
|
gir1.2-gst-plugins-base-1.0 \
|
||||||
|
gir1.2-gstreamer-1.0 \
|
||||||
|
git-core \
|
||||||
|
gstreamer1.0-libav \
|
||||||
|
gstreamer1.0-plugins-bad \
|
||||||
|
gstreamer1.0-plugins-base \
|
||||||
|
gstreamer1.0-plugins-good \
|
||||||
|
gstreamer1.0-plugins-ugly \
|
||||||
|
gstreamer1.0-tools \
|
||||||
|
libasound2-dev \
|
||||||
|
libgstreamer-plugins-base1.0-dev \
|
||||||
|
libsndfile1-dev \
|
||||||
|
nginx \
|
||||||
|
nodejs-legacy \
|
||||||
|
npm \
|
||||||
|
poppler-utils \
|
||||||
|
python \
|
||||||
|
python-dev \
|
||||||
|
python-gi \
|
||||||
|
python-gst-1.0 \
|
||||||
|
python-gst-1.0 \
|
||||||
|
python-imaging \
|
||||||
|
python-lxml \
|
||||||
|
python-numpy \
|
||||||
|
python-scipy \
|
||||||
|
python-virtualenv \
|
||||||
|
python3-gi \
|
||||||
|
sudo \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN set -xe \
|
||||||
|
&& useradd -d /var/lib/mediagoblin -m -r -g www-data mediagoblin \
|
||||||
|
&& groupadd -r mediagoblin \
|
||||||
|
&& usermod -a -G mediagoblin mediagoblin \
|
||||||
|
&& mkdir -p /var/log/mediagoblin \
|
||||||
|
/srv/mediagoblin.example.org/mediagoblin \
|
||||||
|
&& chown -hR mediagoblin:www-data /var/log/mediagoblin \
|
||||||
|
/srv/mediagoblin.example.org \
|
||||||
|
&& echo 'mediagoblin ALL=(ALL:ALL) NOPASSWD: /usr/sbin/nginx, /bin/chown' >> /etc/sudoers
|
||||||
|
|
||||||
|
USER mediagoblin
|
||||||
|
|
||||||
|
WORKDIR /srv/mediagoblin.example.org/mediagoblin
|
||||||
|
|
||||||
|
RUN set -xe \
|
||||||
|
&& git clone http://git.savannah.gnu.org/r/mediagoblin.git . \
|
||||||
|
&& git checkout stable \
|
||||||
|
&& git submodule sync \
|
||||||
|
&& git submodule update --force --init --recursive \
|
||||||
|
&& ./bootstrap.sh \
|
||||||
|
&& ./configure \
|
||||||
|
&& make \
|
||||||
|
&& bin/easy_install flup==1.0.3.dev-20110405 \
|
||||||
|
&& bin/pip install scikits.audiolab \
|
||||||
|
&& ln -s /var/lib/mediagoblin user_dev \
|
||||||
|
&& cp -av mediagoblin.ini mediagoblin_local.ini \
|
||||||
|
&& cp -av paste.ini paste_local.ini \
|
||||||
|
&& sed -i 's@.*sql_engine = .*@sql_engine = sqlite:////var/lib/mediagoblin/mediagoblin.db@' mediagoblin_local.ini \
|
||||||
|
&& { \
|
||||||
|
echo '[[mediagoblin.media_types.video]]'; \
|
||||||
|
echo '[[mediagoblin.media_types.audio]]'; \
|
||||||
|
echo '[[mediagoblin.media_types.pdf]]'; \
|
||||||
|
} >> mediagoblin_local.ini
|
||||||
|
|
||||||
|
COPY nginx.conf /etc/nginx/sites-enabled/default
|
||||||
|
|
||||||
|
VOLUME /var/lib/mediagoblin
|
||||||
|
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
ENV MG_USER admin
|
||||||
|
ENV MG_PASS admin
|
||||||
|
ENV MG_MAIL admin@easypi.info
|
||||||
|
|
||||||
|
CMD set -xe \
|
||||||
|
&& sudo nginx \
|
||||||
|
&& sudo chown -hR mediagoblin:www-data /var/lib/mediagoblin \
|
||||||
|
&& bin/gmg dbupdate \
|
||||||
|
&& bin/gmg adduser --username "${MG_USER}" --password "${MG_PASS}" --email "${MG_MAIL}" \
|
||||||
|
&& bin/gmg makeadmin "${MG_USER}" \
|
||||||
|
&& ./lazyserver.sh --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543
|
34
mediagoblin/README.md
Normal file
34
mediagoblin/README.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
mediagoblin
|
||||||
|
===========
|
||||||
|
|
||||||
|
[MediaGoblin][1] is a free software media publishing platform that anyone can
|
||||||
|
run. You can think of it as a decentralized alternative to Flickr, YouTube,
|
||||||
|
SoundCloud, etc.
|
||||||
|
|
||||||
|
## docker-compose.yml
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
mediagoblin:
|
||||||
|
image: vimagick/mediagoblin
|
||||||
|
ports:
|
||||||
|
- "8080:80"
|
||||||
|
volumes:
|
||||||
|
- ./data:/var/lib/mediagoblin
|
||||||
|
environment:
|
||||||
|
- MG_USER=admin
|
||||||
|
- MG_PASS=admin
|
||||||
|
- MG_MAIL=admin@easypi.info
|
||||||
|
restart: always
|
||||||
|
```
|
||||||
|
|
||||||
|
## up and running
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# start service
|
||||||
|
$ docker-compose up -d
|
||||||
|
|
||||||
|
# open browser
|
||||||
|
$ firefox http://localhost:8080/
|
||||||
|
```
|
||||||
|
|
||||||
|
[1]: http://mediagoblin.org/
|
11
mediagoblin/docker-compose.yml
Normal file
11
mediagoblin/docker-compose.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
mediagoblin:
|
||||||
|
image: vimagick/mediagoblin
|
||||||
|
ports:
|
||||||
|
- "8080:80"
|
||||||
|
volumes:
|
||||||
|
- ./data:/var/lib/mediagoblin
|
||||||
|
environment:
|
||||||
|
- MG_USER=admin
|
||||||
|
- MG_PASS=admin
|
||||||
|
- MG_MAIL=admin@easypi.info
|
||||||
|
restart: always
|
63
mediagoblin/nginx.conf
Normal file
63
mediagoblin/nginx.conf
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
server {
|
||||||
|
#################################################
|
||||||
|
# Stock useful config options, but ignore them :)
|
||||||
|
#################################################
|
||||||
|
include /etc/nginx/mime.types;
|
||||||
|
|
||||||
|
autoindex off;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
sendfile on;
|
||||||
|
|
||||||
|
# Gzip
|
||||||
|
gzip on;
|
||||||
|
gzip_min_length 1024;
|
||||||
|
gzip_buffers 4 32k;
|
||||||
|
gzip_types text/plain application/x-javascript text/javascript text/xml text/css;
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# Mounting MediaGoblin stuff
|
||||||
|
# This is the section you should read
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
# Change this to update the upload size limit for your users
|
||||||
|
client_max_body_size 800m;
|
||||||
|
|
||||||
|
# prevent attacks (someone uploading a .txt file that the browser
|
||||||
|
# interprets as an HTML file, etc.)
|
||||||
|
add_header X-Content-Type-Options nosniff;
|
||||||
|
|
||||||
|
server_name mediagoblin.example.org www.mediagoblin.example.org;
|
||||||
|
access_log /var/log/nginx/mediagoblin.example.access.log;
|
||||||
|
error_log /var/log/nginx/mediagoblin.example.error.log;
|
||||||
|
|
||||||
|
# MediaGoblin's stock static files: CSS, JS, etc.
|
||||||
|
location /mgoblin_static/ {
|
||||||
|
alias /srv/mediagoblin.example.org/mediagoblin/mediagoblin/static/;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Instance specific media:
|
||||||
|
location /mgoblin_media/ {
|
||||||
|
alias /srv/mediagoblin.example.org/mediagoblin/user_dev/media/public/;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Theme static files (usually symlinked in)
|
||||||
|
location /theme_static/ {
|
||||||
|
alias /srv/mediagoblin.example.org/mediagoblin/user_dev/theme_static/;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Plugin static files (usually symlinked in)
|
||||||
|
location /plugin_static/ {
|
||||||
|
alias /srv/mediagoblin.example.org/mediagoblin/user_dev/plugin_static/;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Mounting MediaGoblin itself via FastCGI.
|
||||||
|
location / {
|
||||||
|
fastcgi_pass 127.0.0.1:26543;
|
||||||
|
include /etc/nginx/fastcgi_params;
|
||||||
|
|
||||||
|
# our understanding vs nginx's handling of script_name vs
|
||||||
|
# path_info don't match :)
|
||||||
|
fastcgi_param PATH_INFO $fastcgi_script_name;
|
||||||
|
fastcgi_param SCRIPT_NAME "";
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user