From f029ef1b76ea1e0c8b11a2d13ace507e78097d88 Mon Sep 17 00:00:00 2001 From: Fergal Moran Date: Sun, 31 Mar 2019 16:39:03 +0100 Subject: [PATCH] Initial commit --- .gitignore | 1 + Dockerfile.alpine.podnoms | 12 + Dockerfile.mssql.tools | 25 ++ Dockerfile.podnoms | 11 + angular-cli/Dockerfile | 19 ++ devbox/Dockerfile | 30 +++ devbox/README.md | 2 + docker-icecast/Dockerfile | 20 ++ docker-icecast/LICENSE.md | 22 ++ docker-icecast/README.md | 60 +++++ .../etc/icecast2/admin/listclients.xsl | 101 +++++++ .../etc/icecast2/admin/listmounts.xsl | 84 ++++++ .../etc/icecast2/admin/manageauth.xsl | 98 +++++++ .../etc/icecast2/admin/moveclients.xsl | 63 +++++ .../etc/icecast2/admin/response.xsl | 56 ++++ docker-icecast/etc/icecast2/admin/stats.xsl | 124 +++++++++ .../etc/icecast2/admin/updatemetadata.xsl | 67 +++++ docker-icecast/etc/icecast2/admin/xspf.xsl | 74 ++++++ docker-icecast/etc/icecast2/icecast.xml | 43 +++ docker-icecast/etc/icecast2/web/auth.xsl | 57 ++++ .../etc/icecast2/web/server_version.xsl | 91 +++++++ docker-icecast/etc/icecast2/web/status.xsl | 122 +++++++++ docker-icecast/etc/icecast2/web/status2.xsl | 12 + docker-icecast/etc/icecast2/web/style.css | 250 ++++++++++++++++++ docker-icecast/etc/supervisord.conf | 33 +++ docker-icecast/examples/docker-compose.yml | 12 + docker-icecast/start.sh | 25 ++ elkarbackup/docker-compose.yml | 23 ++ pgadmin4/Dockerfile | 21 ++ pgadmin4/LICENSE.md | 21 ++ pgadmin4/README.md | 8 + pgadmin4/run_pgadmin4.sh | 27 ++ sql-server/Dockerfile | 12 + transmission/Dockerfile | 26 ++ tvheadend/start.sh | 11 + 35 files changed, 1663 insertions(+) create mode 100644 .gitignore create mode 100644 Dockerfile.alpine.podnoms create mode 100644 Dockerfile.mssql.tools create mode 100644 Dockerfile.podnoms create mode 100644 angular-cli/Dockerfile create mode 100644 devbox/Dockerfile create mode 100644 devbox/README.md create mode 100644 docker-icecast/Dockerfile create mode 100644 docker-icecast/LICENSE.md create mode 100644 docker-icecast/README.md create mode 100644 docker-icecast/etc/icecast2/admin/listclients.xsl create mode 100644 docker-icecast/etc/icecast2/admin/listmounts.xsl create mode 100644 docker-icecast/etc/icecast2/admin/manageauth.xsl create mode 100644 docker-icecast/etc/icecast2/admin/moveclients.xsl create mode 100644 docker-icecast/etc/icecast2/admin/response.xsl create mode 100644 docker-icecast/etc/icecast2/admin/stats.xsl create mode 100644 docker-icecast/etc/icecast2/admin/updatemetadata.xsl create mode 100644 docker-icecast/etc/icecast2/admin/xspf.xsl create mode 100644 docker-icecast/etc/icecast2/icecast.xml create mode 100644 docker-icecast/etc/icecast2/web/auth.xsl create mode 100644 docker-icecast/etc/icecast2/web/server_version.xsl create mode 100644 docker-icecast/etc/icecast2/web/status.xsl create mode 100644 docker-icecast/etc/icecast2/web/status2.xsl create mode 100644 docker-icecast/etc/icecast2/web/style.css create mode 100644 docker-icecast/etc/supervisord.conf create mode 100644 docker-icecast/examples/docker-compose.yml create mode 100644 docker-icecast/start.sh create mode 100644 elkarbackup/docker-compose.yml create mode 100644 pgadmin4/Dockerfile create mode 100644 pgadmin4/LICENSE.md create mode 100644 pgadmin4/README.md create mode 100644 pgadmin4/run_pgadmin4.sh create mode 100644 sql-server/Dockerfile create mode 100644 transmission/Dockerfile create mode 100755 tvheadend/start.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c49bd7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.env diff --git a/Dockerfile.alpine.podnoms b/Dockerfile.alpine.podnoms new file mode 100644 index 0000000..ae2c510 --- /dev/null +++ b/Dockerfile.alpine.podnoms @@ -0,0 +1,12 @@ +FROM microsoft/dotnet:2.2.0-aspnetcore-runtime-alpine AS runtime + +RUN apk add --no-cache --update \ + python \ + ffmpeg \ + libuv \ + curl \ + curl-dev && \ + curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl && \ + chmod a+rx /usr/local/bin/youtube-dl && \ + youtube-dl -U + diff --git a/Dockerfile.mssql.tools b/Dockerfile.mssql.tools new file mode 100644 index 0000000..aaacc99 --- /dev/null +++ b/Dockerfile.mssql.tools @@ -0,0 +1,25 @@ +# SQL Server Command Line Tools +FROM ubuntu:16.04 +MAINTAINER SQL Server Engineering Team + +# apt-get and system utilities +RUN apt-get update && apt-get install -y \ + curl apt-transport-https debconf-utils \ + && rm -rf /var/lib/apt/lists/* + +# adding custom MS repository +RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - +RUN curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list + +# install SQL Server drivers and tools +RUN apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql mssql-tools python-pip libunwind8 libicu55 +RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin:/scripts/"' >> ~/.bashrc +RUN /bin/bash -c "source ~/.bashrc" + +RUN apt-get -y install locales +RUN locale-gen en_US.UTF-8 +RUN update-locale LANG=en_US.UTF-8 +RUN pip install mssql-scripter + +CMD /bin/bash + diff --git a/Dockerfile.podnoms b/Dockerfile.podnoms new file mode 100644 index 0000000..53b6d81 --- /dev/null +++ b/Dockerfile.podnoms @@ -0,0 +1,11 @@ +FROM microsoft/dotnet:2.2.0-aspnetcore-runtime AS runtime + +RUN apt-get update +RUN apt-get -y install \ + python \ + ffmpeg \ + curl && \ + curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl && \ + chmod a+rx /usr/local/bin/youtube-dl && \ + youtube-dl -U + diff --git a/angular-cli/Dockerfile b/angular-cli/Dockerfile new file mode 100644 index 0000000..d579162 --- /dev/null +++ b/angular-cli/Dockerfile @@ -0,0 +1,19 @@ +FROM alpine +MAINTAINER fergalmoran + +ENV CONTAINER_USER_ID="1000" +ENV CONTAINER_GROUP_ID="1000" + +RUN apk update && apk upgrade +RUN apk add --update nodejs nodejs-npm + +RUN adduser -D -u ${CONTAINER_USER_ID} -g ${CONTAINER_GROUP_ID} -h /home/user -s /bin/sh user + +RUN mkdir -p /opt/npm-global && chown user:user /opt/npm-global + +USER user + +ENV NPM_CONFIG_PREFIX=/opt/npm-global +ENV PATH=$NPM_CONFIG_PREFIX/bin/:$PATH + +RUN npm install -g npm@latest @angular/cli yarn diff --git a/devbox/Dockerfile b/devbox/Dockerfile new file mode 100644 index 0000000..cd756db --- /dev/null +++ b/devbox/Dockerfile @@ -0,0 +1,30 @@ +FROM ubuntu:latest + +RUN apt-get update -y +RUN apt-get install -y mercurial \ + git \ + python \ + curl \ + mongodb \ + vim \ + vim-nox \ + vim-scripts \ + strace \ + diffstat \ + pkg-config \ + cmake \ + build-essential \ + tcpdump \ + screen \ + python-setuptools \ + exuberant-ctags \ + build-essential \ + cmake \ + python-dev + +#Set up git +RUN git clone https://github.com/fergalmoran/dotfiles.git ${HOME}/dotfiles \ + && cd ${HOME}/dotfiles \ + && ./install.sh + +CMD /bin/zsh diff --git a/devbox/README.md b/devbox/README.md new file mode 100644 index 0000000..6e3ca51 --- /dev/null +++ b/devbox/README.md @@ -0,0 +1,2 @@ +# docker.devbox +Docker image for development box diff --git a/docker-icecast/Dockerfile b/docker-icecast/Dockerfile new file mode 100644 index 0000000..99ca809 --- /dev/null +++ b/docker-icecast/Dockerfile @@ -0,0 +1,20 @@ +FROM ubuntu:wily + +MAINTAINER Fergal Moran "fergal.moran@gmail.com" + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get -y update && \ + apt-get -y install icecast2 python-setuptools && \ + apt-get clean + +RUN easy_install supervisor && \ + easy_install supervisor-stdout + +CMD ["/start.sh"] +EXPOSE 8000 +VOLUME ["/config", "/var/log/icecast2", "/etc/icecast2"] + +ADD ./start.sh /start.sh +ADD ./etc /etc +RUN chown -R icecast2 /etc/icecast2 diff --git a/docker-icecast/LICENSE.md b/docker-icecast/LICENSE.md new file mode 100644 index 0000000..f7cc6d1 --- /dev/null +++ b/docker-icecast/LICENSE.md @@ -0,0 +1,22 @@ +The MIT License +=============== + +Copyright (c) **2013-2015 Manfred Touron ([@moul](https://twitter.com/moul))** + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/docker-icecast/README.md b/docker-icecast/README.md new file mode 100644 index 0000000..e7e116b --- /dev/null +++ b/docker-icecast/README.md @@ -0,0 +1,60 @@ +# Icecast in Docker [![Build Status](https://travis-ci.org/moul/docker-icecast.svg?branch=master)](https://travis-ci.org/moul/docker-icecast) + +Icecast2 Dockerfile + +[![](http://dockeri.co/image/moul/icecast)](https://index.docker.io/u/moul/icecast/) + +## Run + +Run with default password, export port 8000 + +```bash +docker run -p 8000:8000 moul/icecast +$BROWSER localhost:8000 +``` + +Run with custom password + +```bash +docker run -p 8000:8000 -e ICECAST_SOURCE_PASSWORD=aaaa -e ICECAST_ADMIN_PASSWORD=bbbb -e ICECAST_PASSWORD=cccc -e ICECAST_RELAY_PASSWORD=dddd moul/icecast +``` + +Run with custom configuration + +```bash +docker run -p 8000:8000 -v /local/path/to/icecast/config:/etc/icecast2 moul/icecast +docker run -p 8000:8000 -v /local/path/to/icecast.xml:/etc/icecast2/icecast.xml moul/icecast +``` + +Extends Dockerfile + +```Dockerfile +FROM moul/icecast +ADD ./icecast.xml /etc/icecast2 +``` + +Docker-compose + +```yaml +icecast: + image: moul/icecast + volumes: + - logs:/var/log/icecast2 + - /etc/localtime:/etc/localtime:ro + environment: + - ICECAST_SOURCE_PASSWORD=aaa + - ICECAST_ADMIN_PASSWORD=bbb + - ICECAST_PASSWORD=ccc + - ICECAST_RELAY_PASSWORD=ddd + ports: + - 8000:8000 +``` + +## Examples + +- https://github.com/ultreme/scc-radio/ + + +## License + +[MIT](https://github.com/moul/docker-icecast/blob/master/LICENSE.md) diff --git a/docker-icecast/etc/icecast2/admin/listclients.xsl b/docker-icecast/etc/icecast2/admin/listclients.xsl new file mode 100644 index 0000000..fa5a77d --- /dev/null +++ b/docker-icecast/etc/icecast2/admin/listclients.xsl @@ -0,0 +1,101 @@ + + + + + +Icecast Streaming Media Server + + + +

Icecast2 Admin

+
+ +
+
+ +
+ + + +
+ Admin Home + List Mountpoints + Move Listeners + Index +
+
+ +
+
+
+
+ + + +

Listener Stats

+
+
+ +
+
+ +
+ + + + + + + + + + + + + +

Mount Point

Login + M3U + XSPF
+
+ + + + +
+ List Clients + Move Listeners + Update Metadata + Kill Source +
+
+ + + + + + + + + + + + + + + + +
IP
Seconds Connected
User Agent
Action
()Kick
+
+
+
+  +
+
+ +
+
+
Support icecast development at www.icecast.org
+ + +
+
diff --git a/docker-icecast/etc/icecast2/admin/listmounts.xsl b/docker-icecast/etc/icecast2/admin/listmounts.xsl new file mode 100644 index 0000000..2028bbc --- /dev/null +++ b/docker-icecast/etc/icecast2/admin/listmounts.xsl @@ -0,0 +1,84 @@ + + + + + +Icecast Streaming Media Server + + + +

Icecast2 Admin

+
+ +
+
+ +
+ + + +
+ Admin Home + List Mountpoints + Move Listeners + Index +
+
+ +
+
+
+
+ + +

Active Mountpoints

+
+
+ +
+
+ +
+ + + + + + + + + + + + + +

Mount Point

Login + M3U + XSPF
+
+ + + + +
+ List Clients + Move Listeners + Update Metadata + Kill Source + Manage Authentication +
+
+

Listener(s)

+

+
+  +
+
+ +
+
+
Support icecast development at www.icecast.org
+ + +
+
diff --git a/docker-icecast/etc/icecast2/admin/manageauth.xsl b/docker-icecast/etc/icecast2/admin/manageauth.xsl new file mode 100644 index 0000000..25a3610 --- /dev/null +++ b/docker-icecast/etc/icecast2/admin/manageauth.xsl @@ -0,0 +1,98 @@ + + + + + +Icecast Streaming Media Server + + + +

Icecast2 Admin

+
+ +
+
+ +
+ + + +
+ Admin Home + List Mountpoints + Move Listeners + Index +
+
+ +
+
+
+
+ +
+
+ +
+
+ + + + +

+ +()

+ + + +
+ List Clients + Move Listeners + Update Metadata + Kill Source +
+

+
+ + + + + + + + + + + + +
User Id
delete
+ + + + + + + + + + + + +
User IdPassword
+ + +
+
+
+
+  +
+
+ +
+
+
Support icecast development at www.icecast.org
+ + +
+
diff --git a/docker-icecast/etc/icecast2/admin/moveclients.xsl b/docker-icecast/etc/icecast2/admin/moveclients.xsl new file mode 100644 index 0000000..43112f1 --- /dev/null +++ b/docker-icecast/etc/icecast2/admin/moveclients.xsl @@ -0,0 +1,63 @@ + + + + + +Icecast Streaming Media Server + + + +

Icecast2 Admin

+
+ +
+
+ +
+ + + +
+ Admin Home + List Mountpoints + Move Listeners + Index +
+
+ +
+
+
+
+ + +

Moving Listeners From ()

+
+
+ +
+
+

Move to which mountpoint ?

+ + + + + + + +
Move from () to () ListenersMove Clients
+
+
+
+  +
+
+ +
+
+
Support icecast development at www.icecast.org
+ + + +
+
diff --git a/docker-icecast/etc/icecast2/admin/response.xsl b/docker-icecast/etc/icecast2/admin/response.xsl new file mode 100644 index 0000000..c75af8d --- /dev/null +++ b/docker-icecast/etc/icecast2/admin/response.xsl @@ -0,0 +1,56 @@ + + + + + +Icecast Streaming Media Server + + + +

Icecast2 Admin

+
+ +
+
+ +
+ + + +
+ Admin Home | + List Mountpoints | + Move Listeners | + Index +
+
+ +
+
+
+
+ +

Icecast Server Response

+
+
+ +
+
+

Response

+ +Message :

+Return Code:

+
+
+
+
+
+ +
+
+
Support icecast development at www.icecast.org
+ + + +
+
diff --git a/docker-icecast/etc/icecast2/admin/stats.xsl b/docker-icecast/etc/icecast2/admin/stats.xsl new file mode 100644 index 0000000..a3cc614 --- /dev/null +++ b/docker-icecast/etc/icecast2/admin/stats.xsl @@ -0,0 +1,124 @@ + + + + + +Icecast Streaming Media Server + + + +

Icecast2 Admin

+
+ +
+
+ +
+ + + +
+ Admin Home + List Mountpoints + Move Listeners + Index +
+
+ +
+
+
+
+ + + +
+
+ +
+
+

Global Server Stats

+ + + + + + + + + + + +
+
+
+ +
+
+
+
+ + + + + +
+
+ +
+
+
+ + + + + + + + + + + + + +

Mount Point

Login + M3U + XSPF
+
+ + + +
+ List Clients + Move MountPoints + Update Metadata + Kill Source + Manage Authentication +
+
+ + + + + + + +
+
+
+ +
+
+
+
+
+
+  + + + +
Support icecast development at www.icecast.org
+ + +
+
diff --git a/docker-icecast/etc/icecast2/admin/updatemetadata.xsl b/docker-icecast/etc/icecast2/admin/updatemetadata.xsl new file mode 100644 index 0000000..55bde7c --- /dev/null +++ b/docker-icecast/etc/icecast2/admin/updatemetadata.xsl @@ -0,0 +1,67 @@ + + + + + +Icecast Streaming Media Server + + + +

Icecast2 Admin

+
+ +
+
+ +
+ + + +
+ Admin Home + List Mountpoints + Move Listeners + Index +
+
+ +
+
+
+
+ +

Update Metadata

+
+
+ +
+
+ +

+ +()

+ +
+ + + +
Metadata :
+ + + +
+ +
+
+
+  +
+
+ +
+
+
Support icecast development at www.icecast.org
+ + +
+
diff --git a/docker-icecast/etc/icecast2/admin/xspf.xsl b/docker-icecast/etc/icecast2/admin/xspf.xsl new file mode 100644 index 0000000..5ca1082 --- /dev/null +++ b/docker-icecast/etc/icecast2/admin/xspf.xsl @@ -0,0 +1,74 @@ + + + + + + + <xsl:value-of select="server" /> + + + + + + + + + + + +<xsl:value-of select="title" /> + + +Stream Title: + +Stream Description: +Content Type: + +Bitrate: + +Quality: + +Video Quality: + +Framesize: + +Framerate: + +Current Listeners: + +Peak Listeners: + +Stream Genre: + + + + + + + + + + + + + diff --git a/docker-icecast/etc/icecast2/icecast.xml b/docker-icecast/etc/icecast2/icecast.xml new file mode 100644 index 0000000..18caf55 --- /dev/null +++ b/docker-icecast/etc/icecast2/icecast.xml @@ -0,0 +1,43 @@ + + + 1000 + 42 + 5 + 524288 + 30 + 15 + 10 + 1 + 65535 + + + + RDzNlgqmj67vk + 9PmUbI1mLne9o + admin + CrVuP5evoJZ0. + + + radio.deepsouthsounds.com + + 8351 + /dss + + 1 + + /usr/share/icecast2 + /var/log/icecast2 + /usr/share/icecast2/web + /usr/share/icecast2/admin + + + + access.log + error.log + 3 + 10000 + + + 0 + + diff --git a/docker-icecast/etc/icecast2/web/auth.xsl b/docker-icecast/etc/icecast2/web/auth.xsl new file mode 100644 index 0000000..cc3fc79 --- /dev/null +++ b/docker-icecast/etc/icecast2/web/auth.xsl @@ -0,0 +1,57 @@ + + + + + +Icecast Streaming Media Server + + + + + + + + +
+

Authorization Page

+
+
+ +
+
+ + + + + +

()

+
+ + + + +
Username :
Password :
+ +
+
+
+ +

- Not Connected

+
+
+

+

+
+&nbsp; +
+
+ +
+
+



+
+
Support icecast development at www.icecast.org
+ + +
+
diff --git a/docker-icecast/etc/icecast2/web/server_version.xsl b/docker-icecast/etc/icecast2/web/server_version.xsl new file mode 100644 index 0000000..5fd5c5f --- /dev/null +++ b/docker-icecast/etc/icecast2/web/server_version.xsl @@ -0,0 +1,91 @@ + + + + + +Icecast Streaming Media Server + + + +

Server Information

+
+ +
+
+ +
+ + + + +
+ Administration + Server Status + Version
+
+ +
+
+
+
+ + +
+
+ +
+
+

Server Information

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Location
Admin
Host
Version
Downloadicecast.org
Subversionclick here
Documentationclick here
Stream Directory dir.xiph.org
Communityforum.icecast.org
+
+
+ +
+
+
+
+ +
Support icecast development at www.icecast.org
+ + +
+
diff --git a/docker-icecast/etc/icecast2/web/status.xsl b/docker-icecast/etc/icecast2/web/status.xsl new file mode 100644 index 0000000..caa932f --- /dev/null +++ b/docker-icecast/etc/icecast2/web/status.xsl @@ -0,0 +1,122 @@ + + + + + +Icecast Streaming Media Server + + + +

Icecast2 Status

+
+ +
+
+ +
+ + + + +
+ Administration + Server Status + Version
+
+ +
+
+
+
+ + + + + +
+
+ +
+
+
+ + + + + + + + + + + + + +

Mount Point

Login M3U XSPF
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Stream Title:
Stream Description:
Content Type:
Mount started:
Bitrate:
Quality:
Video Quality:
Framesize:
Framerate:
Current Listeners:
Peak Listeners:
Stream Genre:
Stream URL:
Current Song: + -
+
+
+ +
+
+
+
+
+ +

- Not Connected

+
+
+ +
+&nbsp; + + +
Support icecast development at www.icecast.org
+ + +
+
diff --git a/docker-icecast/etc/icecast2/web/status2.xsl b/docker-icecast/etc/icecast2/web/status2.xsl new file mode 100644 index 0000000..3f44d3b --- /dev/null +++ b/docker-icecast/etc/icecast2/web/status2.xsl @@ -0,0 +1,12 @@ + + + +
+MountPoint,Connections,Stream Name,Current Listeners,Description,Currently Playing,Stream URL 
+Global,Client: Source: ,,,,
+
+,,,,, - ,
+
+
+
+
diff --git a/docker-icecast/etc/icecast2/web/style.css b/docker-icecast/etc/icecast2/web/style.css new file mode 100644 index 0000000..129d49d --- /dev/null +++ b/docker-icecast/etc/icecast2/web/style.css @@ -0,0 +1,250 @@ +/****************************************************************************** + + This file styles the bar that goes across the top of all Xiph.Org + pages. + + The style that comes from this was first (to my knowledge) at + http://alistapart.com/stories/practicalcss/ in the + "Splitting the Difference" section. + +******************************************************************************/ + +/* This effect doesn't work at all if all content is pinched in a bit. */ +html, body { + margin: 0; + padding: 0; +} + +body { + margin-left: 50px; + margin-right: 25px; + background-color: #000; +} + +.xiphnav { + font-family: Verdana, sans-serif; + font-weight: normal; + padding: .25em; + margin-bottom: .5em; + border-bottom: 1px solid #000; + color: #000; + background: #aaa; +} +h2 { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + font-size: 3em; + color: #fff; + padding: 10px 0px 10px 80px; + margin-top:3px; + background: transparent url(/icecast.png) no-repeat scroll left center +} +h1 { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + font-size: 100%; + color: #fff; + margin-top:3px; +} +.nav { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + font-size: 110%; + color: #fff; +} +.nav:hover { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + color: #f8ef64; +} +.xiphnav_a { + text-decoration: none; + font-weight: normal; + color: #000; +} +.news { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: normal; + color: #fff; +} +.newsheader { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: normal; + font-size: 110%; + color: #f8ef64; + background: #444; +} +.streamtd { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: normal; + font-size: 85%; + color: #fff; + padding:15px; +} +.streamtd_alt { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: normal; + font-size: 85%; + color: #fff; +} + +.streamtd_alt_2 { + font-family: Verdana, sans-serif; + text-decoration: underline; + font-weight: normal; + font-size: 85%; + color: #fff; +} + +td { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: normal; + color: #fff; +} +.roundcont { + width: 90%; + background-color: #656565; + color: #fff; +} +.roundcont a { + margin: 0px 10px; +} +.newscontent { + margin: 0 20px; +} +h3 { + margin: 0px; + padding: 0px; + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + font-size: 110%; + color: #f8ef64; +} +.newscontent h3 { + margin-bottom: 10px; + border-bottom: 1px groove #ACACAC; +} +.newscontent h4 { + margin: 10px 0px; + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + font-size: 110%; + color: #f8ef64; +} +.newscontent p { + margin: 0 0; + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: none; + font-size: 90%; +} +.newscontent td { + margin: 0 0; + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: none; + font-size: 90%; +} +.newscontent td.streamdata { + margin: 0 0; + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: none; + font-size: 90%; + color: #f8ef64; +} +.streamheader table { + width: 100%; + margin-bottom: 5px; + border-bottom: 1px groove #ACACAC; +} +.streamheader td { + margin: 0px; + padding-top: 10px; + padding-bottom: 10px; + padding: 10 5 10 5; + border: 0px solid white; +} +.streamheader h3 { + border: 0px; +} +.streamheader a { + padding: 8px 5px 3px 30px; + text-decoration: none; + background: transparent url("/tunein.png") no-repeat left center; +} +.streamheader a.auth { + padding-top: 10px; + padding-bottom: 10px; + padding-left: 32px; + background: transparent url("/key.png") no-repeat left center; +} +.newscontent a { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + margin: 0px; + color: #f8ef64; +} +.newscontent a:hover { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + color: #fff; +} +.newscontent a.nav2 { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + padding: 2px 9px; + background: #444; + color: #f8ef64; +} +.newscontent a.nav2:hover { + font-family: Verdana, sans-serif; + text-decoration: none; + background: #777; + font-weight: bold; + color: #fff; +} +.poster { + font-family: Verdana, sans-serif; + margin: 50px 120px 20px 0px; + display: block; + text-decoration: none; + font-size: 100%; + color: #f8ef64; + padding: 5px; + border-top: 1px groove #ACACAC; +} +.roundcont p { + margin: 10px 50px; +} + +.roundtop { + background: url(/corner_topright.jpg) no-repeat top right; +} + +.roundbottom { + background: url(/corner_bottomright.jpg) no-repeat top right; +} + +img.corner { + width: 15px; + height: 15px; + border: none; + display: block !important; +} + + diff --git a/docker-icecast/etc/supervisord.conf b/docker-icecast/etc/supervisord.conf new file mode 100644 index 0000000..be7c901 --- /dev/null +++ b/docker-icecast/etc/supervisord.conf @@ -0,0 +1,33 @@ +[unix_http_server] +file=/tmp/supervisor.sock + +[supervisord] +logfile=/tmp/supervisord.log +logfile_maxbytes=50MB +logfile_backups=10 +loglevel=info +pidfile=/tmp/supervisord.pid +nodaemon=false +minfds=1024 +minprocs=200 +user=icecast2 + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor.sock + +[program:icecast2] +user=icecast2 +command=icecast2 -n -c /etc/icecast2/icecast.xml +stopsignal=6 +stdout_events_enabled=true +stderr_events_enabled=true +autorestart=true + +[eventlistener:stdout] +command=supervisor_stdout +buffer_size=100 +events=PROCESS_LOG +result_hander=supervisor_stdout:event_handler diff --git a/docker-icecast/examples/docker-compose.yml b/docker-icecast/examples/docker-compose.yml new file mode 100644 index 0000000..824200b --- /dev/null +++ b/docker-icecast/examples/docker-compose.yml @@ -0,0 +1,12 @@ +icecast: + image: moul/icecast:latest + volumes: + - logs:/var/log/icecast2 + - /etc/localtime:/etc/localtime:ro + environment: + - ICECAST_SOURCE_PASSWORD=changeme + - ICECAST_ADMIN_PASSWORD=changeme + - ICECAST_PASSWORD=changeme + - ICECAST_RELAY_PASSWORD=changeme + ports: + - 8000:8000 diff --git a/docker-icecast/start.sh b/docker-icecast/start.sh new file mode 100644 index 0000000..79dc99b --- /dev/null +++ b/docker-icecast/start.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +env + +set -x + +if [ -n "$ICECAST_SOURCE_PASSWORD" ]; then + sed -i "s/[^<]*<\/source-password>/$ICECAST_SOURCE_PASSWORD<\/source-password>/g" /etc/icecast2/icecast.xml +fi + +if [ -n "$ICECAST_RELAY_PASSWORD" ]; then + sed -i "s/[^<]*<\/relay-password>/$ICECAST_RELAY_PASSWORD<\/relay-password>/g" /etc/icecast2/icecast.xml +fi + +if [ -n "$ICECAST_ADMIN_PASSWORD" ]; then + sed -i "s/[^<]*<\/admin-password>/$ICECAST_ADMIN_PASSWORD<\/admin-password>/g" /etc/icecast2/icecast.xml +fi + +if [ -n "$ICECAST_PASSWORD" ]; then + sed -i "s/[^<]*<\/password>/$ICECAST_PASSWORD<\/password>/g" /etc/icecast2/icecast.xml +fi + +cat /etc/icecast2/icecast.xml + +supervisord -n -c /etc/supervisord.conf diff --git a/elkarbackup/docker-compose.yml b/elkarbackup/docker-compose.yml new file mode 100644 index 0000000..a86147c --- /dev/null +++ b/elkarbackup/docker-compose.yml @@ -0,0 +1,23 @@ +version: '2' +services: + db: + image: mysql + environment: + MYSQL_ROOT_PASSWORD: changeme + #volumes: + # - /srv/mysql:/var/lib/mysql + + elkarbackup: + image: elkarbackup/elkarbackup + ports: + - 80:80 + - 443:443 + links: + - db + depends_on: + - db + #volumes: + # - /srv/elkarbackup/config:/etc/elkarbackup + # - /srv/elkarbackup/data:/var/spool/elkarbackup + environment: + EB_DB_PASSWORD: topSecret diff --git a/pgadmin4/Dockerfile b/pgadmin4/Dockerfile new file mode 100644 index 0000000..ba36494 --- /dev/null +++ b/pgadmin4/Dockerfile @@ -0,0 +1,21 @@ +FROM ubuntu +ENV DEBIAN_FRONTEND=noninteractive + +RUN \ + export DEBIAN_FRONTEND=noninteractive \ + && apt-get -qy update && apt-get -qy dist-upgrade \ + && apt-get -qy install --no-install-recommends python3 python3-pip libpq5 libpq-dev build-essential libpython3-all-dev git python-setuptools \ + && pip3 install --upgrade pip \ + && pip install setuptools \ + && git clone git://git.postgresql.org/git/pgadmin4.git \ + # && rm -rf pgadmin4/.git \ + && pip install -r pgadmin4/requirements.txt \ + && apt-get -qy purge libpq-dev build-essential libpython3-all-dev git \ + && apt-get -qy --purge autoremove && apt-get -qy clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ + && rm -rf /usr/share/doc /usr/share/doc-base /usr/share/man /usr/share/locale /usr/share/zoneinfo + +EXPOSE 5050 + +ADD run_pgadmin4.sh / +RUN chmod +x /run_pgadmin4.sh +ENTRYPOINT ["./run_pgadmin4.sh"] diff --git a/pgadmin4/LICENSE.md b/pgadmin4/LICENSE.md new file mode 100644 index 0000000..8162ba4 --- /dev/null +++ b/pgadmin4/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Fergal Moran + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/pgadmin4/README.md b/pgadmin4/README.md new file mode 100644 index 0000000..ad32ef8 --- /dev/null +++ b/pgadmin4/README.md @@ -0,0 +1,8 @@ +# Docker container for pgadmin4 + +Create a folder for settings and run the container + +``` +mkdir -p ~/pgadmin-data +docker run -it --rm -v ~/pgadmin-data:/pgadmin-data --net=host fergalmoran/pgadmin4:latest +``` \ No newline at end of file diff --git a/pgadmin4/run_pgadmin4.sh b/pgadmin4/run_pgadmin4.sh new file mode 100644 index 0000000..47429e1 --- /dev/null +++ b/pgadmin4/run_pgadmin4.sh @@ -0,0 +1,27 @@ +#!/bin/bash +export USER_ID=${DATA_USER_ID:-1000} +export GROUP_ID=${DATA_GROUP_ID:-1000} + +#Link configuration volume +mkdir -p /pgadmin-data +ln -s /pgadmin-data /root/.pgadmin +chmod a+x /root + +#Create unprivileged user +groupadd -g $GROUP_ID -o pgadmin +useradd --shell /usr/sbin/nologin -u $USER_ID -o -c "" -g $GROUP_ID pgadmin --home /pgadmin-data +chown pgadmin:pgadmin /pgadmin-data + +#Create persistent config file on volume +if [ ! -f /pgadmin-data/config_local.py ]; then + cat /pgadmin4/web/config.py \ + | sed "s/DEFAULT_SERVER = 'localhost'/DEFAULT_SERVER = '0.0.0.0'/" \ + > /pgadmin-data/config_local.py + chown pgadmin:pgadmin /pgadmin-data/config_local.py +fi +ln -s /pgadmin-data/config_local.py /pgadmin4/web/config_local.py + + +#Run unprivileged +chroot --userspec pgadmin:pgadmin / python3 pgadmin4/web/pgAdmin4.py + diff --git a/sql-server/Dockerfile b/sql-server/Dockerfile new file mode 100644 index 0000000..f7c29d6 --- /dev/null +++ b/sql-server/Dockerfile @@ -0,0 +1,12 @@ +FROM ubuntu:16.04 +RUN apt-get update +RUN apt-get install -y curl apt-transport-https sudo + +RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - +RUN curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list > /etc/apt/sources.list.d/mssql-server.list +RUN curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/msprod.list + +RUN apt-get update +RUN apt-get install -y mssql-server mssql-tools + + diff --git a/transmission/Dockerfile b/transmission/Dockerfile new file mode 100644 index 0000000..f67bd41 --- /dev/null +++ b/transmission/Dockerfile @@ -0,0 +1,26 @@ +FROM lsiobase/alpine.armhf:3.7 +LABEL maintainer="Ferg@lMoran.me" + +RUN \ + echo "**** install packages ****" && \ + apk add --no-cache \ + curl \ + jq \ + openssh \ + openssl \ + p7zip \ + rsync \ + tar \ + transmission-cli \ + transmission-daemon \ + unrar \ + unzip + +# copy local files +COPY root/ / + +RUN rc-update add sshd +# ports and volumes +EXPOSE 9091 30006 22 +VOLUME /config /watch + diff --git a/tvheadend/start.sh b/tvheadend/start.sh new file mode 100755 index 0000000..0373f02 --- /dev/null +++ b/tvheadend/start.sh @@ -0,0 +1,11 @@ +#! /usr/bin/env bash +docker run \ + -e PUID=1000 \ + -e PGID=1000 \ + -e TZ=Europe/London \ + -p 9981:9981 \ + -p 9982:9982 \ + -v /mnt/niles/kubes/configs/tvheadend:/config \ + -v /mnt/niles/kubes/configs/tvheadend/recordings:/recordings \ + linuxserver/tvheadend +