├── .github
└── workflows
│ └── ci.yaml
├── LICENSE.md
├── README.md
├── alpine-aptly
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── etc
│ ├── aptly.conf
│ ├── cont-init.d
│ │ └── 10-setup
│ ├── fix-attrs.d
│ │ └── 01-aptly
│ └── services.d
│ │ ├── 10-api
│ │ └── run
│ │ └── 50-nginx
│ │ └── run
│ └── usr
│ └── bin
│ └── aptly
├── alpine-base-3.15
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ └── cont-init.d
│ └── 00-timezone
├── alpine-base-3.5
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ └── cont-init.d
│ └── 00-timezone
├── alpine-base-3.8
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ └── cont-init.d
│ └── 00-timezone
├── alpine-base-glibc
├── Dockerfile
├── README.md
└── hooks
│ └── build
├── alpine-base
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ └── cont-init.d
│ └── 00-timezone
├── alpine-bigbrother-b3
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── WIP.txt
│ └── etc
│ └── services.d
│ └── b3
│ └── run
├── alpine-build-fpm
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── usr
│ └── bin
│ └── fpm
├── alpine-build
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ └── sudoers.d
│ └── builder
├── alpine-canto
├── Dockerfile
├── README.md
└── hooks
│ └── build
├── alpine-djigzo
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── app
│ ├── djigzo
│ │ ├── conf
│ │ │ └── james
│ │ │ │ └── SAR-INF
│ │ │ │ ├── config.xml
│ │ │ │ ├── smtp_server_config.xml
│ │ │ │ └── smtp_transport_config.xml
│ │ └── wrapper
│ │ │ └── wrapper-additional-parameters.conf
│ └── tomcat8
│ │ └── conf
│ │ ├── Catalina
│ │ └── localhost
│ │ │ ├── ciphermail.xml
│ │ │ └── web.xml
│ │ ├── server.xml
│ │ └── server.xml.org
│ └── etc
│ ├── cont-init.d
│ ├── 10-mysql
│ ├── 20-openssl
│ └── 30-mail-callback
│ └── services.d
│ ├── 10-backend
│ └── run
│ └── 20-web
│ └── run
├── alpine-fluentd
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-init.d
│ └── 00-fluentd
│ ├── crontabs
│ └── root
│ ├── fix-attrs.d
│ └── 01-fluent
│ ├── fluent.conf
│ └── services.d
│ ├── 10-fluentd
│ └── run
│ └── 20-crond
│ └── run
├── alpine-fuglu
├── Dockerfile
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── clamav
│ ├── clamd.conf
│ └── freshclam.conf
│ ├── cont-init.d
│ ├── 00-fuglu
│ ├── 10-clamav
│ └── 20-spamassassin
│ ├── fuglu
│ ├── fuglu.conf.dist
│ ├── logging.conf.dist
│ └── sql
│ │ ├── attachmentrules.sql
│ │ └── fugluconfig.sql
│ └── services.d
│ ├── 00_syslog
│ └── run
│ ├── 10_clamd
│ └── run
│ ├── 20_spamd
│ └── run
│ └── 50_fuglu
│ └── run
├── alpine-go
├── Dockerfile
└── hooks
│ └── build
├── alpine-grimd
├── Dockerfile
├── hooks
│ └── build
└── resources
│ └── etc
│ └── services.d
│ └── 10_grimd
│ └── run
├── alpine-haproxy
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── app
│ ├── docker-gen.cfg
│ ├── haproxy.cfg.tmpl
│ ├── reload-haproxy.sh
│ └── update-cf-list.sh
│ ├── crontabs
│ └── haproxy
│ ├── data
│ └── ssl
│ │ └── crt-list.txt
│ ├── etc
│ ├── cont-init.d
│ │ ├── 90-haproxy
│ │ └── 99-openssl
│ ├── haproxy
│ │ ├── haproxy.cfg
│ │ └── lua
│ │ │ └── acme-http01-webroot.lua
│ └── services.d
│ │ ├── .s6-svscan
│ │ └── finish
│ │ ├── 10_syslog
│ │ └── run
│ │ ├── 50_haproxy
│ │ └── run
│ │ └── 99_docker_gen
│ │ └── run
│ └── usr
│ └── bin
│ └── certbot
├── alpine-mariadb
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-init.d
│ └── 00-mariadb-init
│ ├── mysql
│ └── my.cnf
│ └── services.d
│ └── mariadb
│ └── run
├── alpine-matrix
├── Dockerfile
├── README.md
└── hooks
│ └── build
├── alpine-mozilla-syncserver
├── Dockerfile
└── README.md
├── alpine-mumble
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-init.d
│ └── 10-setup
│ ├── fix-attrs.d
│ └── 01-mumble
│ ├── murmur.ini
│ └── services.d
│ └── 10_mumble
│ └── run
├── alpine-musicbot
├── Dockerfile
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-init.d
│ └── 10-musicbot-init
│ └── services.d
│ └── 10_musicbot
│ └── run
├── alpine-netdata
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-init.d
│ └── 10-setup
│ └── services.d
│ └── 10_netdata
│ └── run
├── alpine-newsboat
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── etc
│ ├── cont-init.d
│ │ └── 10-setup
│ └── fix-attrs.d
│ │ └── 01-newsboat
│ └── usr
│ └── local
│ └── bin
│ └── newsboat
├── alpine-nginx-freshrss-php7
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-finish.d
│ └── 99-freshrss
│ ├── cont-init.d
│ └── 99-freshrss
│ ├── crontabs
│ └── root
│ └── services.d
│ └── crond
│ └── run
├── alpine-nginx-freshrss
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-finish.d
│ └── 99-freshrss
│ ├── cont-init.d
│ └── 99-freshrss
│ ├── crontabs
│ └── root
│ └── services.d
│ └── crond
│ └── run
├── alpine-nginx-matomo
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ └── php8
│ └── conf.d
│ └── zzz-custom.ini
├── alpine-nginx-nextcloud
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── etc
│ ├── cont-init.d
│ │ └── 10-pre
│ ├── crontabs
│ │ └── www-data
│ ├── fix-attrs.d
│ │ └── 02-usr-bin
│ ├── nginx
│ │ ├── fastcgi_params
│ │ └── nginx.conf
│ ├── php8
│ │ └── conf.d
│ │ │ └── 99_custom.ini
│ └── services.d
│ │ └── cron
│ │ └── run
│ └── usr
│ └── bin
│ └── occ
├── alpine-nginx-organizr
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── fix-attrs.d
│ └── 01-config
│ └── nginx
│ └── nginx.conf
├── alpine-nginx-php5
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── data
│ └── web
│ │ └── index.php
│ ├── etc
│ ├── cont-init.d
│ │ └── 10-pre
│ ├── nginx
│ │ ├── fastcgi_params
│ │ └── nginx.conf
│ ├── php5
│ │ ├── conf.d
│ │ │ └── upload.ini
│ │ └── php-fpm.conf
│ └── services.d
│ │ ├── .s6-svscan
│ │ └── finish
│ │ ├── nginx
│ │ └── run
│ │ └── php-fpm5
│ │ └── run
│ └── usr
│ └── bin
│ └── composer
├── alpine-nginx-php7
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── data
│ └── web
│ │ └── index.php
│ ├── etc
│ ├── cont-init.d
│ │ └── 10-pre
│ ├── nginx
│ │ ├── fastcgi_params
│ │ └── nginx.conf
│ ├── php7
│ │ ├── conf.d
│ │ │ └── upload.ini
│ │ └── php-fpm.conf
│ └── services.d
│ │ ├── .s6-svscan
│ │ └── finish
│ │ ├── nginx
│ │ └── run
│ │ └── php-fpm7
│ │ └── run
│ └── usr
│ └── bin
│ └── composer
├── alpine-nginx-php8
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── data
│ └── web
│ │ └── index.php
│ ├── etc
│ ├── cont-init.d
│ │ └── 10-pre
│ ├── nginx
│ │ ├── fastcgi_params
│ │ └── nginx.conf
│ ├── php8
│ │ ├── conf.d
│ │ │ └── upload.ini
│ │ └── php-fpm.conf
│ └── services.d
│ │ ├── .s6-svscan
│ │ └── finish
│ │ ├── nginx
│ │ └── run
│ │ └── php-fpm8
│ │ └── run
│ └── usr
│ └── bin
│ └── composer
├── alpine-nginx-php82
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── data
│ └── web
│ │ └── index.php
│ ├── etc
│ ├── cont-init.d
│ │ └── 10-pre
│ ├── nginx
│ │ ├── fastcgi_params
│ │ └── nginx.conf
│ ├── php82
│ │ ├── conf.d
│ │ │ └── upload.ini
│ │ └── php-fpm.conf
│ └── services.d
│ │ ├── .s6-svscan
│ │ └── finish
│ │ ├── nginx
│ │ └── run
│ │ └── php-fpm82
│ │ └── run
│ └── usr
│ └── bin
│ └── composer
├── alpine-nginx-phpbb-php7
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── etc
│ ├── cont-finish.d
│ │ └── 10-phpbb
│ ├── cont-init.d
│ │ ├── 10-phpbb
│ │ ├── 10-pre
│ │ └── 99-migrate
│ ├── crontabs
│ │ └── root
│ ├── fix-attrs.d
│ │ └── 02-usr-bin
│ ├── nginx
│ │ └── nginx.conf
│ └── services.d
│ │ └── crond
│ │ └── run
│ └── usr
│ └── bin
│ └── phpbbcli
├── alpine-nginx-phpbb
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── etc
│ ├── cont-finish.d
│ │ └── 10-phpbb
│ ├── cont-init.d
│ │ ├── 10-phpbb
│ │ ├── 10-pre
│ │ └── 99-migrate
│ ├── crontabs
│ │ └── root
│ ├── fix-attrs.d
│ │ └── 02-usr-bin
│ ├── nginx
│ │ └── nginx.conf
│ └── services.d
│ │ └── crond
│ │ └── run
│ └── usr
│ └── bin
│ └── phpbbcli
├── alpine-nginx-rainloop-php7
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-finish.d
│ └── 99-rainloop
│ └── cont-init.d
│ └── 99-rainloop
├── alpine-nginx-rainloop-php8
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-finish.d
│ └── 99-rainloop
│ └── cont-init.d
│ └── 99-rainloop
├── alpine-nginx-rainloop
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-finish.d
│ └── 99-rainloop
│ └── cont-init.d
│ └── 99-rainloop
├── alpine-nginx-shaarli-php7
├── Dockerfile
├── README.md
└── hooks
│ └── build
├── alpine-nginx-shaarli
├── Dockerfile
├── README.md
└── hooks
│ └── build
├── alpine-nginx-snappymail-php8
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-finish.d
│ └── 99-snappymail
│ ├── cont-init.d
│ └── 99-snappymail
│ ├── nginx
│ └── nginx.conf
│ └── php8
│ └── conf.d
│ └── gnupg.ini
├── alpine-nginx-static
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── data
│ └── web
│ │ └── index.html
│ └── etc
│ ├── cont-init.d
│ └── 10-pre
│ ├── nginx
│ └── nginx.conf
│ └── services.d
│ ├── .s6-svscan
│ └── finish
│ └── nginx
│ └── run
├── alpine-nginx-wordpress-php7
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-finish.d
│ └── 99-wordpress
│ └── cont-init.d
│ └── 99-wordpress
├── alpine-nginx-wordpress-php8
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-finish.d
│ └── 99-wordpress
│ └── cont-init.d
│ └── 99-wordpress
├── alpine-nginx-yourls-php7
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-init.d
│ └── 10-setup
│ └── nginx
│ └── nginx.conf
├── alpine-nginx-yourls
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-init.d
│ └── 10-setup
│ └── nginx
│ └── nginx.conf
├── alpine-nodejs-weecloud
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ └── services.d
│ └── weecloud
│ └── run
├── alpine-nodejs
├── Dockerfile
├── README.md
└── hooks
│ └── build
├── alpine-openfire
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-finish.d
│ └── 10-persist
│ ├── cont-init.d
│ └── 10-setup
│ └── services.d
│ └── 50-openfire
│ └── run
├── alpine-posty-api
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── data
│ ├── DELETEME
│ └── api
│ │ └── app
│ │ └── models
│ │ └── folder.rb
│ └── etc
│ ├── cont-init.d
│ └── 10-bundle
│ └── services.d
│ └── 10_posty
│ └── run
├── alpine-posty-webui
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── data
│ └── config
│ │ └── DELETEME
│ └── etc
│ ├── cont-init.d
│ ├── 10-authentication
│ └── 20-settings
│ ├── lighttpd
│ ├── lighttpd-htpasswd.conf
│ └── lighttpd.conf
│ └── services.d
│ └── 10_posty
│ └── run
├── alpine-prosody
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-init.d
│ ├── 10-openssl
│ └── 20-setup
│ ├── prosody
│ └── prosody.cfg.lua
│ └── services.d
│ └── 50-prosody
│ └── run
├── alpine-softether
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-finish.d
│ ├── 00-custom-config
│ └── 10-persist
│ ├── cont-init.d
│ ├── 00-custom-config
│ └── 10-persist
│ └── services.d
│ └── 10-vpnserver
│ └── run
├── alpine-spiderfoot
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── etc
│ ├── cont-finish.d
│ │ └── 10-persist
│ ├── cont-init.d
│ │ └── 10-persist
│ ├── fix-attrs.d
│ │ └── data
│ └── services.d
│ │ └── 10-spiderfoot
│ │ └── run
│ └── usr
│ └── bin
│ └── sfcli
├── alpine-teamspeak3
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-init.d
│ └── 10-setup
│ ├── fix-attrs.d
│ └── 01-teamspeak3
│ └── services.d
│ ├── .s6-svscan
│ └── finish
│ └── 10_teamspeak3
│ └── run
├── alpine-virtualmail-fuglu
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── etc
│ ├── clamav
│ │ ├── clamd.conf
│ │ └── freshclam.conf
│ ├── cont-finish.d
│ │ └── 00-custom-config
│ ├── cont-init.d
│ │ ├── 00-custom-config
│ │ ├── 00-fuglu
│ │ ├── 10-autoconf
│ │ ├── 10-clamav
│ │ ├── 20-prepare-ssl
│ │ └── 20-spamassassin
│ ├── crontabs
│ │ └── vmail
│ ├── dovecot
│ │ ├── conf.d
│ │ │ ├── 10-auth.conf
│ │ │ ├── 10-director.conf
│ │ │ ├── 10-logging.conf
│ │ │ ├── 10-mail.conf
│ │ │ ├── 10-master.conf
│ │ │ ├── 10-ssl.conf
│ │ │ ├── 10-tcpwrapper.conf
│ │ │ ├── 15-lda.conf
│ │ │ ├── 15-mailboxes.conf
│ │ │ ├── 20-imap.conf
│ │ │ ├── 20-lmtp.conf
│ │ │ ├── 20-managesieve.conf
│ │ │ ├── 20-pop3.conf
│ │ │ ├── 90-acl.conf
│ │ │ ├── 90-plugin.conf.dist
│ │ │ ├── 90-quota.conf
│ │ │ ├── 90-sieve.conf
│ │ │ ├── 99-security.conf
│ │ │ ├── auth-master.conf.ext
│ │ │ └── auth-sql.conf.ext
│ │ ├── dovecot-sql.conf.ext.dist
│ │ ├── dovecot.conf
│ │ ├── dovecot.pem
│ │ ├── private
│ │ │ └── dovecot.pem
│ │ └── sieve
│ │ │ ├── default.sieve
│ │ │ └── global
│ │ │ └── spamassassin.sieve
│ ├── fix-attrs.d
│ │ ├── data-clamav
│ │ ├── dovecot-sieve
│ │ └── usr-local-bin
│ ├── fuglu
│ │ ├── fuglu.conf.dist
│ │ ├── logging.conf.dist
│ │ ├── skipplugins.regex.dist
│ │ └── sql
│ │ │ ├── attachmentrules.sql
│ │ │ └── fugluconfig.sql
│ ├── mail
│ │ └── spamassassin
│ │ │ └── local.cf
│ ├── postfix
│ │ ├── header_checks.dist
│ │ ├── main.cf
│ │ ├── master.cf
│ │ └── virtual
│ │ │ ├── mysql-virtual-domain-aliases.cf.dist
│ │ │ ├── mysql-virtual-mailbox-domains.cf.dist
│ │ │ ├── mysql-virtual-mailbox-maps.cf.dist
│ │ │ ├── mysql-virtual-transports.cf.dist
│ │ │ └── mysql-virtual-user-aliases.cf.dist
│ └── services.d
│ │ ├── 05_crond
│ │ └── run
│ │ ├── 10_clamd
│ │ └── run
│ │ ├── 10_dovecot
│ │ └── run
│ │ ├── 20_spamd
│ │ └── run
│ │ ├── 50_fuglu
│ │ └── run
│ │ └── 60_postfix
│ │ └── run
│ └── usr
│ └── local
│ └── bin
│ ├── learnSA.sh
│ └── sa-learn
├── alpine-virtualmail
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ ├── etc
│ ├── clamav
│ │ ├── clamd.conf
│ │ └── freshclam.conf
│ ├── cont-finish.d
│ │ ├── 00-custom-config
│ │ └── 10-persist
│ ├── cont-init.d
│ │ ├── 00-custom-config
│ │ ├── 10-autoconf
│ │ ├── 20-prepare-ssl
│ │ ├── 40-freshclam
│ │ └── 50-presitent-storage
│ ├── dovecot
│ │ ├── conf.d
│ │ │ ├── 10-auth.conf
│ │ │ ├── 10-director.conf
│ │ │ ├── 10-logging.conf
│ │ │ ├── 10-mail.conf
│ │ │ ├── 10-master.conf
│ │ │ ├── 10-ssl.conf
│ │ │ ├── 10-tcpwrapper.conf
│ │ │ ├── 15-lda.conf
│ │ │ ├── 15-mailboxes.conf
│ │ │ ├── 20-imap.conf
│ │ │ ├── 20-lmtp.conf
│ │ │ ├── 20-managesieve.conf
│ │ │ ├── 20-pop3.conf
│ │ │ ├── 90-acl.conf
│ │ │ ├── 90-plugin.conf
│ │ │ ├── 90-quota.conf
│ │ │ ├── 90-sieve.conf
│ │ │ ├── 99-security.conf
│ │ │ ├── auth-master.conf.ext
│ │ │ └── auth-sql.conf.ext
│ │ ├── dovecot-sql.conf.ext
│ │ ├── dovecot.conf
│ │ ├── dovecot.pem
│ │ ├── private
│ │ │ └── dovecot.pem
│ │ └── sieve
│ │ │ ├── default.sieve
│ │ │ └── global
│ │ │ └── assp.sieve
│ ├── fix-attrs.d
│ │ ├── data-assp
│ │ ├── data-clamav
│ │ └── dovecot-sieve
│ ├── postfix
│ │ ├── main.cf
│ │ ├── master.cf
│ │ └── virtual
│ │ │ ├── mysql-virtual-domain-aliases.cf
│ │ │ ├── mysql-virtual-mailbox-domains.cf
│ │ │ ├── mysql-virtual-mailbox-maps.cf
│ │ │ ├── mysql-virtual-transports.cf
│ │ │ └── mysql-virtual-user-aliases.cf
│ └── services.d
│ │ ├── 00_syslog
│ │ └── run
│ │ ├── 05_crond
│ │ └── run
│ │ ├── 10_dovecot
│ │ └── run
│ │ ├── 20_postfix
│ │ └── run
│ │ ├── 25_clamd
│ │ └── run
│ │ └── 30_assp
│ │ └── run
│ └── usr
│ └── share
│ └── assp
│ └── assp.cfg.defaults
├── alpine-weechat
├── Dockerfile
├── README.md
├── hooks
│ └── build
└── resources
│ └── etc
│ ├── cont-init.d
│ ├── 10-persist-weechat
│ └── 99-dropbear
│ ├── fix-attrs.d
│ └── 20-weechat-data
│ ├── profile.d
│ └── tmux.sh
│ ├── services.d
│ ├── 10-dropbear
│ │ └── run
│ └── 20-tor
│ │ └── run
│ ├── tmux.conf
│ └── tor
│ └── torrc
├── hooks
└── build
└── update_s6_overlay.sh
/README.md:
--------------------------------------------------------------------------------
1 | # dockerfiles
2 |
3 | This repository is intented to contain all Dockerfiles I maintain either for myself or some interested people ;-)
4 | Use at your own risk ofcourse, the files can be changed anytime if I want to so be adviced.
5 | If you have any suggestions, feel free to create a issue.
6 |
--------------------------------------------------------------------------------
/alpine-aptly/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | ENV \
9 | FULL_NAME="aptly" \
10 | EMAIL_ADDRESS="aptly@aptly.container" \
11 | GPG_PASSWORD="aptly" \
12 | GPG_TTY="/dev/console" \
13 | GNUPGHOME="/aptly/.gnupg" \
14 | APTLY_VERSION=1.5.0
15 |
16 | RUN set -xe && apk --no-cache add curl xz bzip2 gnupg debian-archive-keyring nginx su-exec && \
17 | mkdir -p /app/aptly && curl -L https://github.com/aptly-dev/aptly/releases/download/v${APTLY_VERSION}/aptly_${APTLY_VERSION}_linux_amd64.tar.gz | tar zx -C /app/aptly --strip-components=1 && \
18 | adduser -D -h /aptly -u 1000 aptly && chown aptly:aptly /app/aptly -R && apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/*
19 |
20 |
21 | COPY resources/ /
22 |
23 | EXPOSE 80/tcp 8080/tcp
24 |
25 | VOLUME /aptly
26 |
--------------------------------------------------------------------------------
/alpine-aptly/README.md:
--------------------------------------------------------------------------------
1 | # alpine-aptly
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-aptly "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-aptly "Get your own image badge on microbadger.com")
5 |
6 | Volume:
7 | /aptly
8 |
9 | API is exposed at port 8080
10 |
11 | Repository is serving at port 80
12 |
--------------------------------------------------------------------------------
/alpine-aptly/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-aptly/resources/etc/aptly.conf:
--------------------------------------------------------------------------------
1 | {
2 | "rootDir": "/aptly/data",
3 | "downloadConcurrency": 4,
4 | "downloadSpeedLimit": 0,
5 | "architectures": [],
6 | "dependencyFollowSuggests": false,
7 | "dependencyFollowRecommends": false,
8 | "dependencyFollowAllVariants": false,
9 | "dependencyFollowSource": false,
10 | "gpgDisableSign": false,
11 | "gpgDisableVerify": false,
12 | "downloadSourcePackages": false,
13 | "ppaDistributorID": "ubuntu",
14 | "ppaCodename": "",
15 | "S3PublishEndpoints": {},
16 | "SwiftPublishEndpoints": {}
17 | }
18 |
--------------------------------------------------------------------------------
/alpine-aptly/resources/etc/fix-attrs.d/01-aptly:
--------------------------------------------------------------------------------
1 | /app true aptly 0760 0750
2 | /aptly true aptly 0644 0755
3 | /etc/aptly.conf false aptly 0644 0750
4 | /usr/bin/aptly false aptly 0760 0750
5 |
--------------------------------------------------------------------------------
/alpine-aptly/resources/etc/services.d/10-api/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /command/s6-setuidgid aptly /app/aptly/aptly -config /etc/aptly.conf api serve
4 |
--------------------------------------------------------------------------------
/alpine-aptly/resources/etc/services.d/50-nginx/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /usr/sbin/nginx -g 'daemon off; pid /tmp/nginx.pid;'
4 |
--------------------------------------------------------------------------------
/alpine-aptly/resources/usr/bin/aptly:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | /sbin/su-exec aptly /app/aptly/aptly ${@}
4 |
--------------------------------------------------------------------------------
/alpine-base-3.15/README.md:
--------------------------------------------------------------------------------
1 | # base
2 | [](https://microbadger.com/images/combro2k/alpine-base "Get your own version badge on microbadger.com")
3 | [](https://microbadger.com/images/combro2k/alpine-base "Get your own image badge on microbadger.com")
4 |
5 | This is a base image template to use to create new containers.
6 |
--------------------------------------------------------------------------------
/alpine-base-3.15/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --pull --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-base-3.15/resources/etc/cont-init.d/00-timezone:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -z $TZ ]; then
4 | if [ ! -f /etc/timezone ] || grep $TZ /etc/timezone; then
5 | /sbin/apk --no-cache add tzdata
6 |
7 | echo $TZ > /etc/timezone
8 | fi
9 | fi
10 |
--------------------------------------------------------------------------------
/alpine-base-3.5/README.md:
--------------------------------------------------------------------------------
1 | # base
2 | [](https://microbadger.com/images/combro2k/alpine-base "Get your own version badge on microbadger.com")
3 | [](https://microbadger.com/images/combro2k/alpine-base "Get your own image badge on microbadger.com")
4 |
5 | This is a base image template to use to create new containers.
6 |
--------------------------------------------------------------------------------
/alpine-base-3.5/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --pull --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-base-3.5/resources/etc/cont-init.d/00-timezone:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -z $TZ ]; then
4 | if [ ! -f /etc/timezone ] || grep $TZ /etc/timezone; then
5 | /sbin/apk --no-cache add tzdata
6 |
7 | echo $TZ > /etc/timezone
8 | fi
9 | fi
10 |
--------------------------------------------------------------------------------
/alpine-base-3.8/README.md:
--------------------------------------------------------------------------------
1 | # base
2 | [](https://microbadger.com/images/combro2k/alpine-base "Get your own version badge on microbadger.com")
3 | [](https://microbadger.com/images/combro2k/alpine-base "Get your own image badge on microbadger.com")
4 |
5 | This is a base image template to use to create new containers.
6 |
--------------------------------------------------------------------------------
/alpine-base-3.8/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --pull --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-base-3.8/resources/etc/cont-init.d/00-timezone:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -z $TZ ]; then
4 | if [ ! -f /etc/timezone ] || grep $TZ /etc/timezone; then
5 | /sbin/apk --no-cache add tzdata
6 |
7 | echo $TZ > /etc/timezone
8 | fi
9 | fi
10 |
--------------------------------------------------------------------------------
/alpine-base-glibc/README.md:
--------------------------------------------------------------------------------
1 | # base
2 |
3 | This is a base glibc image template to use to create new containers
4 |
--------------------------------------------------------------------------------
/alpine-base-glibc/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-base/README.md:
--------------------------------------------------------------------------------
1 | # base
2 | [](https://microbadger.com/images/combro2k/alpine-base "Get your own version badge on microbadger.com")
3 | [](https://microbadger.com/images/combro2k/alpine-base "Get your own image badge on microbadger.com")
4 |
5 | This is a base image template to use to create new containers.
6 |
--------------------------------------------------------------------------------
/alpine-base/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --pull --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-base/resources/etc/cont-init.d/00-timezone:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -z $TZ ]; then
4 | if [ ! -f /etc/timezone ] || grep $TZ /etc/timezone; then
5 | /sbin/apk --no-cache add tzdata
6 |
7 | echo $TZ > /etc/timezone
8 | fi
9 | fi
10 |
--------------------------------------------------------------------------------
/alpine-bigbrother-b3/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:3.15
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN set -xe && apk add --quiet --no-cache curl tar python2 && \
9 | curl https://bootstrap.pypa.io/pip/2.7/get-pip.py | python2 - && adduser -D b3 && \
10 | mkdir /b3 && curl --location https://github.com/BigBrotherBot/big-brother-bot/archive/master.tar.gz | tar -zxC /b3 --strip-components=1 && \
11 | cd /b3 && python2 -m pip install -r requirements.txt && mkdir /data && touch b3.ini
12 |
13 | COPY resources/ /
14 |
15 | VOLUME /data
16 |
--------------------------------------------------------------------------------
/alpine-bigbrother-b3/README.md:
--------------------------------------------------------------------------------
1 | # alpine-bigbrother-b3:latest
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-bigbrother-b3:latest "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-bigbrother-b3:latest "Get your own image badge on microbadger.com")
5 |
6 | To generate the config you can visit: https://statsgen.co.uk/b3-config-generator/
7 |
8 | After that you can mount a volume mount on docker
9 |
10 | To the bot run on foreground:
11 | ```
12 | docker run -ti --rm -v /path/to/presistence/storage:/data combro2k/docker-b3:latest -s
13 | ```
14 |
15 | To run the bot on background:
16 | ```
17 | docker run -d -v /path/to/presistence/storage:/data combro2k/docker-b3:latest
18 | ```
19 |
--------------------------------------------------------------------------------
/alpine-bigbrother-b3/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-bigbrother-b3/resources/WIP.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/combro2k/dockerfiles/fd191fb79f6b871c7f39d68cec1a4f0ab9b4c521/alpine-bigbrother-b3/resources/WIP.txt
--------------------------------------------------------------------------------
/alpine-bigbrother-b3/resources/etc/services.d/b3/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | HOME=/home/b3 exec /command/s6-setuidgid b3 /usr/bin/python2 /b3/b3_run.py --config /data/b3.ini
4 |
--------------------------------------------------------------------------------
/alpine-build-fpm/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | ENV GEM_PATH="/app"
4 |
5 | RUN apk --no-cache --quiet --virtual=.run-deps add ruby libffi ruby-etc && \
6 | apk --no-cache --quiet --virtual=.build-deps add libffi-dev ruby-dev alpine-sdk && \
7 | apk --no-cache --quiet --virtual=.fpm-deps add py2-virtualenv dpkg xz python2-dev && \
8 | gem install fpm --no-rdoc --no-ri --install-dir /app && pip install virtualenv-tools
9 |
10 | ADD resources/ /
11 |
12 | RUN chmod +x /usr/bin/fpm
13 |
14 | CMD /bin/sh
15 |
--------------------------------------------------------------------------------
/alpine-build-fpm/README.md:
--------------------------------------------------------------------------------
1 | # alpine-build-fpm
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-build-fpm "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-build-fpm "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-build-fpm/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-build-fpm/resources/usr/bin/fpm:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /app/bin/fpm "${@}"
4 |
--------------------------------------------------------------------------------
/alpine-build/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | RUN apk add --no-cache --quiet alpine-sdk shadow && \
4 | adduser -D builder && mkdir -p /var/cache/distfiles && \
5 | chgrp abuild /var/cache/distfiles && chmod a+w /var/cache/distfiles && \
6 | addgroup builder abuild
7 |
8 | COPY resources/ /
9 |
10 | USER builder
11 |
12 | RUN abuild-keygen -a -i -q -n
13 |
14 | USER root
15 |
16 | CMD ['su', '-', 'builder']
17 |
--------------------------------------------------------------------------------
/alpine-build/README.md:
--------------------------------------------------------------------------------
1 | # alpine-build
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-build "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-build "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-build/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-build/resources/etc/sudoers.d/builder:
--------------------------------------------------------------------------------
1 | builder ALL=(ALL) NOPASSWD:ALL
2 |
--------------------------------------------------------------------------------
/alpine-canto/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN apk --no-cache add curl tar python3 && apk --no-cache add --virtual=.build-deps readline-dev ncurses-dev alpine-sdk python3-dev && \
9 | mkdir -p /app/canto-next /app/canto-curses && pip3 install --break-system-packages feedparser && \
10 | curl --location https://github.com/themoken/canto-next/archive/master.tar.gz | tar zx -C /app/canto-next --strip-components=1 && \
11 | cd /app/canto-next && python3 setup.py install && \
12 | curl --location https://github.com/themoken/canto-curses/archive/master.tar.gz | tar zx -C /app/canto-curses --strip-components=1 && \
13 | cd /app/canto-curses && python3 setup.py install && cd /tmp && \
14 | rm -fr /app && apk --no-cache --purge del .build-deps
15 |
--------------------------------------------------------------------------------
/alpine-canto/README.md:
--------------------------------------------------------------------------------
1 | # alpine-canto
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-canto "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-canto "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-canto/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-djigzo/README.md:
--------------------------------------------------------------------------------
1 | # alpine-djigzo
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-djigzo "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-djigzo "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-djigzo/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-djigzo/resources/app/djigzo/conf/james/SAR-INF/smtp_server_config.xml:
--------------------------------------------------------------------------------
1 |
7 | 10025
8 | 0.0.0.0
9 |
--------------------------------------------------------------------------------
/alpine-djigzo/resources/app/djigzo/conf/james/SAR-INF/smtp_transport_config.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | 127.0.0.1
14 | 10026
15 |
--------------------------------------------------------------------------------
/alpine-djigzo/resources/app/djigzo/wrapper/wrapper-additional-parameters.conf:
--------------------------------------------------------------------------------
1 | #encoding=UTF-8
2 |
3 | # this file can contain one or more parameters that will be passed as is to the JVM
4 | # example:
5 | -Dciphermail.hibernate.database.type=mysql
6 |
--------------------------------------------------------------------------------
/alpine-djigzo/resources/app/tomcat8/conf/Catalina/localhost/ciphermail.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/alpine-djigzo/resources/app/tomcat8/conf/Catalina/localhost/web.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/alpine-djigzo/resources/etc/cont-init.d/10-mysql:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv bash
2 |
3 | cat > /app/djigzo/conf/database/hibernate.mysql.connection.xml <
5 |
6 | jdbc:mysql://${MYSQL_PORT_3306_TCP_ADDR}:${MYSQL_PORT_3306_TCP_PORT}/${DJIGZO_MYSQL_DATABASE}
7 | ${DJIGZO_MYSQL_USER}
8 | ${DJIGZO_MYSQL_PASSWORD}
9 | EOF
10 |
11 | exit 0
12 |
--------------------------------------------------------------------------------
/alpine-djigzo/resources/etc/cont-init.d/20-openssl:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -d /data/ssl ]; then
4 | mkdir -p /data/ssl
5 | fi
6 |
7 | if [ ! -f /data/ssl/ssl.pem ] && [ ! -f /data/ssl/ssl.crt ]; then
8 | /usr/bin/openssl req -nodes -newkey rsa:4096 -keyout /data/ssl/ssl.key -out /data/ssl/ssl.csr -subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=default"
9 | /usr/bin/openssl x509 -req -days 365 -in /data/ssl/ssl.csr -signkey /data/ssl/ssl.key -out /data/ssl/ssl.crt
10 | cat /data/ssl/ssl.crt /data/ssl/ssl.key > /data/ssl/ssl.pem
11 | fi
12 |
13 | exit 0
14 |
--------------------------------------------------------------------------------
/alpine-djigzo/resources/etc/cont-init.d/30-mail-callback:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv bash
2 |
3 | cat > /app/djigzo/conf/james/SAR-INF/smtp_transport_config.xml <
10 |
11 |
12 |
13 |
14 |
15 |
16 | ${MAIL_CALLBACK_IP}
17 | ${MAIL_CALLBACK_PORT}
18 | EOF
19 |
20 | if [ ${MAIL_CALLBACK_IP} = "127.0.0.1" ]; then
21 | [ ! -L /app/djigzo/scripts/scripts.d/postfix.sh ] && ln -s /app/djigzo/scripts/postfix.sh /app/djigzo/scripts/scripts.d/postfix.sh
22 | fi
23 |
24 | exit 0
25 |
--------------------------------------------------------------------------------
/alpine-djigzo/resources/etc/services.d/10-backend/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /app/djigzo/wrapper/wrapper-djigzo -c ../../djigzo.wrapper.conf $@
4 |
--------------------------------------------------------------------------------
/alpine-djigzo/resources/etc/services.d/20-web/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | export JAVA_OPTS="-Ddjigzo-web.home=/app/djigzo-web -Djava.awt.headless=true -Xmx128M"
4 |
5 | exec /app/tomcat8/bin/catalina.sh run
6 |
--------------------------------------------------------------------------------
/alpine-fluentd/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN set -xe && \
9 | apk add --quiet --no-cache --virtual=.run-deps ruby curl ruby-irb ruby-etc ruby-webrick && \
10 | apk add --quiet --no-cache --virtual=.build-deps git openssl ruby-dev alpine-sdk && \
11 | mkdir /app /var/run/fluent /var/log/fluent -p && gem install fluentd -v "~> 0.12.0" --no-ri --no-rdoc && \
12 | adduser -D -S -u 1000 -h /fluent fluent && apk del --quiet --no-cache --purge .build-deps && apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/*
13 |
14 | COPY resources/ /
15 |
16 | VOLUME /fluent /var/log/fluent
17 |
18 | EXPOSE 24220/tcp 24224/tcp
19 |
--------------------------------------------------------------------------------
/alpine-fluentd/README.md:
--------------------------------------------------------------------------------
1 | # alpine-fluentd
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-fluentd "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-fluentd "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-fluentd/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-fluentd/resources/etc/cont-init.d/00-fluentd:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -f /fluent/fluent.conf ]; then
4 | cp /etc/fluent.conf /fluent/fluent.conf
5 | mkdir /fluent/plugins
6 | fi
7 |
8 | exit 0
9 |
--------------------------------------------------------------------------------
/alpine-fluentd/resources/etc/crontabs/root:
--------------------------------------------------------------------------------
1 | */5 * * * * /command/s6-setuidgid fluent find /var/log/fluent/ -mtime +7 -delete > /dev/stdout 2>&1
2 |
--------------------------------------------------------------------------------
/alpine-fluentd/resources/etc/fix-attrs.d/01-fluent:
--------------------------------------------------------------------------------
1 | /fluent true fluent 0644 2750
2 | /var/run/fluent true fluent 0644 2750
3 | /var/log/fluent true fluent 0644 2750
4 |
--------------------------------------------------------------------------------
/alpine-fluentd/resources/etc/services.d/10-fluentd/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /command/s6-setuidgid fluent /usr/bin/fluentd -c /fluent/fluent.conf -v
4 |
--------------------------------------------------------------------------------
/alpine-fluentd/resources/etc/services.d/20-crond/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /usr/sbin/crond -f -S
4 |
--------------------------------------------------------------------------------
/alpine-fuglu/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-fuglu/resources/etc/cont-init.d/10-clamav:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -d /data/clamav ]; then
4 | mkdir /data/clamav
5 | chown -R clamav:clamav /data/clamav
6 | fi
7 |
8 | if [ ! -d /run/clamav ]; then
9 | mkdir -p /run/clamav
10 | chown -R clamav:clamav /run/clamav
11 | fi
12 |
13 | /usr/bin/freshclam
14 |
15 | exit 0
16 |
--------------------------------------------------------------------------------
/alpine-fuglu/resources/etc/cont-init.d/20-spamassassin:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | /usr/bin/sa-update -v
4 |
5 | exit 0
6 |
--------------------------------------------------------------------------------
/alpine-fuglu/resources/etc/fuglu/sql/attachmentrules.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS `attachmentrules` (
2 | `rule_id` int(11) NOT NULL AUTO_INCREMENT,
3 | `action` varchar(10) NOT NULL,
4 | `regex` varchar(255) NOT NULL,
5 | `description` varchar(255) DEFAULT NULL,
6 | `scope` varchar(255) DEFAULT NULL,
7 | `checktype` varchar(20) NOT NULL,
8 | `prio` int(11) NOT NULL,
9 | PRIMARY KEY (`rule_id`)
10 | )
11 |
--------------------------------------------------------------------------------
/alpine-fuglu/resources/etc/fuglu/sql/fugluconfig.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS `fugluconfig` (
2 | `scope` varchar(255) NOT NULL,
3 | `section` varchar(255) NOT NULL,
4 | `option` varchar(255) NOT NULL,
5 | `value` varchar(255) NOT NULL,
6 | PRIMARY KEY (`scope`,`section`,`option`)
7 | )
8 |
--------------------------------------------------------------------------------
/alpine-fuglu/resources/etc/services.d/00_syslog/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 |
3 | exec /sbin/syslogd -n -S -O -
4 |
--------------------------------------------------------------------------------
/alpine-fuglu/resources/etc/services.d/10_clamd/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 |
3 | exec /usr/sbin/clamd
4 |
--------------------------------------------------------------------------------
/alpine-fuglu/resources/etc/services.d/20_spamd/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 |
3 | exec /usr/sbin/spamd --username vmail --groupname vmail --create-prefs --max-children 5 --helper-home-dir --allow-tell
4 |
--------------------------------------------------------------------------------
/alpine-fuglu/resources/etc/services.d/50_fuglu/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 | exec /usr/bin/fuglu --foreground --config /data/fuglu/fuglu.conf
3 |
--------------------------------------------------------------------------------
/alpine-go/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN set -xe && apk add --quiet --no-cache --virtual=.build-deps git go
9 | ONBUILD RUN if [ -x /app/build ]; then sh /app/build && rm /app/build && apk --quiet --no-cache del .build-deps; fi
10 |
11 | COPY resources/ /
12 |
--------------------------------------------------------------------------------
/alpine-go/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-grimd/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | ENV UID="1000" \
9 | GID="1000" \
10 | GRIMD_VERSION="1.1.4"
11 |
12 | ADD https://github.com/looterz/grimd/releases/download/v${GRIMD_VERSION}/grimd_${GRIMD_VERSION}_linux_amd64.tar.gz /tmp/grimd.tgz
13 |
14 | RUN apk add --no-cache libcap ca-certificates su-exec && \
15 | tar -C /usr/local/bin -zxf /tmp/grimd.tgz grimd && rm /tmp/grimd.tgz && \
16 | setcap cap_net_bind_service=+eip /usr/local/bin/grimd && \
17 | adduser -D -h /config -u $UID -g $GID grimd && apk del libcap
18 |
19 | COPY resources/ /
20 |
21 | VOLUME /config
22 |
23 | EXPOSE 53/udp 53/tcp 8080/tcp
24 |
--------------------------------------------------------------------------------
/alpine-grimd/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-grimd/resources/etc/services.d/10_grimd/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | cd /config
4 |
5 | /sbin/su-exec grimd /usr/local/bin/grimd -config /config/grimd.toml -update
6 |
--------------------------------------------------------------------------------
/alpine-haproxy/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | ENV S6_KILL_GRACETIME=3000 DOCKER_ENDPOINT=unix:///tmp/docker.sock
9 | ENV DOCKER_GEN_VERSION=0.10.4
10 |
11 | RUN set -xe && \
12 | apk add --quiet --no-cache --virtual=run-deps curl ca-certificates openssl haproxy && mkdir /app && \
13 | mkdir -p /data/acme-challenge && chown -R haproxy:haproxy /data/acme-challenge && chmod +rwx /data/acme-challenge && \
14 | curl --location --silent https://github.com/nginx-proxy/docker-gen/releases/download/${DOCKER_GEN_VERSION}/docker-gen-alpine-linux-amd64-${DOCKER_GEN_VERSION}.tar.gz | tar zx -C /app && \
15 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/*
16 |
17 | COPY resources/ /
18 |
19 | RUN chmod +x /app/reload-haproxy.sh /usr/bin/certbot /app/update-cf-list.sh
20 |
21 | #VOLUME /tmp/docker.sock
22 |
23 | EXPOSE 80/tcp 443/tcp 9000/tcp
24 |
25 | ENTRYPOINT ["/init"]
26 |
--------------------------------------------------------------------------------
/alpine-haproxy/README.md:
--------------------------------------------------------------------------------
1 | # alpine-haproxy
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-haproxy "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-haproxy "Get your own image badge on microbadger.com")
5 |
6 | ### Usage
7 |
8 | ```
9 | docker run -d -v /var/run/docker.sock:/tmp/docker.sock:ro combro2k/alpine-haproxy:latest
10 |
11 | docker run -d -e DOCKER_ENPOINT=tcp://172.42.0.1:4242 combro2k/alpine-haproxy:latest
12 | ```
13 |
14 | ### VHOST Variables
15 |
16 | ```
17 |
18 | VIRTUAL_HOST
19 | VIRTUAL_SSL_HOST
20 | VHOST_SSL_ONLY
21 | VHOST_WHITELIST
22 | VIRTUAL_PORT
23 | VIRTUAL_SSL_PORT
24 |
25 | ```
26 |
--------------------------------------------------------------------------------
/alpine-haproxy/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-haproxy/resources/app/docker-gen.cfg:
--------------------------------------------------------------------------------
1 | [[config]]
2 | template = "/app/haproxy.cfg.tmpl"
3 | dest = "/etc/haproxy/haproxy.cfg"
4 | onlyexposed = true
5 | notifycmd = "/bin/sh -c /app/reload-haproxy.sh"
6 | watch = true
7 | wait = "10s:60s"
8 | endpoint = "unix:///tmp/docker.sock"
--------------------------------------------------------------------------------
/alpine-haproxy/resources/app/reload-haproxy.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | while ! test -f /tmp/haproxy.pid; do
4 | echo "Waiting 1 second haproxy to start up ..."
5 | sleep 1
6 | done
7 |
8 | if ! /usr/sbin/haproxy -c -f /etc/haproxy/haproxy.cfg -f /data/haproxy.d/; then
9 | echo "Not reloading haproxy because there are errors"
10 |
11 | exit 1
12 | fi
13 |
14 | echo "Reloading haproxy"
15 | /command/s6-svc -t /var/run/s6/legacy-services/50_haproxy/
16 |
17 | exit 0
18 |
--------------------------------------------------------------------------------
/alpine-haproxy/resources/app/update-cf-list.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | curl --silent --output /data/cf-list-v4.txt https://www.cloudflare.com/ips-v4
4 | curl --silent --output /data/cf-list-v6.txt https://www.cloudflare.com/ips-v6
5 |
--------------------------------------------------------------------------------
/alpine-haproxy/resources/crontabs/haproxy:
--------------------------------------------------------------------------------
1 | 0 * * * * /app/update-cf-list.sh
2 |
--------------------------------------------------------------------------------
/alpine-haproxy/resources/data/ssl/crt-list.txt:
--------------------------------------------------------------------------------
1 | /data/ssl/default.pem *
2 |
--------------------------------------------------------------------------------
/alpine-haproxy/resources/etc/cont-init.d/90-haproxy:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -d /data/haproxy.d ]; then
4 | mkdir -p /data/haproxy.d
5 | fi
6 |
7 | if [ ! -d /data/acme-challenge ]; then
8 | mkdir -p /data/acme-challenge
9 | chown -R haproxy:haproxy /data/acme-challenge
10 | chmod +rwx /data/acme-challenge
11 | fi
12 |
13 | curl --silent --output /data/cf-list-v4.txt https://www.cloudflare.com/ips-v4
14 | curl --silent --output /data/cf-list-v6.txt https://www.cloudflare.com/ips-v6
15 | chown haproxy:haproxy /data/cf-list-v4.txt /data/cf-list-v6.txt
16 |
17 | exit 0
18 |
--------------------------------------------------------------------------------
/alpine-haproxy/resources/etc/cont-init.d/99-openssl:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -d /data/ssl ]; then
4 | mkdir -p /data/ssl
5 | fi
6 | if [ ! -f /data/ssl/default.pem ]; then
7 | /usr/bin/openssl req -nodes -newkey rsa:4096 -keyout /data/ssl/default.key -out /data/ssl/default.csr -subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=default"
8 | /usr/bin/openssl x509 -req -days 365 -in /data/ssl/default.csr -signkey /data/ssl/default.key -out /data/ssl/default.crt
9 | cat /data/ssl/default.crt /data/ssl/default.key > /data/ssl/default.pem
10 | rm /data/ssl/default.crt /data/ssl/default.key /data/ssl/default.csr
11 | fi
12 |
13 | if [ ! -f /data/ssl/dh-param.pem ]; then
14 | /usr/bin/curl https://2ton.com.au/dhparam/4096 --output /data/ssl/dh-param.pem
15 | fi
16 |
17 | if [ ! -f /data/ssl/crt-list.txt ]; then
18 | touch /data/ssl/crt-list.txt
19 | fi
20 |
21 | if ! grep -iq '^/data/ssl/default.pem' /data/ssl/crt-list.txt; then
22 | echo '/data/ssl/default.pem *' > /data/ssl/crt-list.txt
23 | fi
24 |
25 | exit 0
26 |
--------------------------------------------------------------------------------
/alpine-haproxy/resources/etc/services.d/.s6-svscan/finish:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | exit 0
--------------------------------------------------------------------------------
/alpine-haproxy/resources/etc/services.d/10_syslog/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 |
3 | /sbin/syslogd -n -O -
4 |
--------------------------------------------------------------------------------
/alpine-haproxy/resources/etc/services.d/50_haproxy/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 | /usr/sbin/haproxy -W -db -p /tmp/haproxy.pid -f /etc/haproxy/haproxy.cfg -f /data/haproxy.d/
3 |
--------------------------------------------------------------------------------
/alpine-haproxy/resources/etc/services.d/99_docker_gen/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 |
3 | with-contenv
4 | fdmove -c 2 1
5 |
6 | multisubstitute
7 | {
8 | importas -u -D "unix:///tmp/docker.sock" DOCKER_ENDPOINT DOCKER_ENDPOINT
9 | }
10 | /app/docker-gen -config /app/docker-gen.cfg -endpoint "${DOCKER_ENDPOINT}"
11 |
--------------------------------------------------------------------------------
/alpine-haproxy/resources/usr/bin/certbot:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | echo "Installing for first use..."
4 | /sbin/apk add --no-cache --quiet certbot
5 |
6 | exec $0 "$@"
7 |
--------------------------------------------------------------------------------
/alpine-mariadb/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | ENV LC_ALL=en_GB.UTF-8 \
9 | PID_FILE=/run/mysqld/mysqld.pid
10 |
11 | RUN set -xe && apk --no-cache add mariadb mariadb-client && \
12 | apk del --no-cache --purge && rm -rf /var/cache/apk/*
13 |
14 | COPY resources/ /
15 |
16 | EXPOSE 3306/tcp
17 |
18 | VOLUME /var/lib/mysql
19 |
--------------------------------------------------------------------------------
/alpine-mariadb/README.md:
--------------------------------------------------------------------------------
1 | # alpine-mariadb
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-mariadb "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-mariadb "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-mariadb/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-mariadb/resources/etc/mysql/my.cnf:
--------------------------------------------------------------------------------
1 | # The following options will be passed to all MariaDB clients
2 | [client]
3 | #password = your_password
4 | port = 3306
5 | socket = /run/mysqld/mysqld.sock
6 |
7 | # Here follows entries for some specific programs
8 |
9 | # The MariaDB server
10 | [mysqld]
11 | port = 3306
12 | socket = /run/mysqld/mysqld.sock
13 | skip-external-locking
14 | key_buffer_size = 16M
15 | max_allowed_packet = 1M
16 | table_open_cache = 64
17 | sort_buffer_size = 512K
18 | net_buffer_length = 8K
19 | read_buffer_size = 256K
20 | read_rnd_buffer_size = 512K
21 | myisam_sort_buffer_size = 8M
22 | log-bin=mysql-bin
23 | binlog_format=mixed
24 | server-id = 1
25 |
26 | # fix it
27 | skip-host-cache
28 | skip-name-resolve
29 | bind-address=::
30 |
31 | [mysqldump]
32 | quick
33 | max_allowed_packet = 16M
34 |
35 | [mysql]
36 | no-auto-rehash
37 | # Remove the next comment character if you are not familiar with SQL
38 | #safe-updates
39 |
40 | [myisamchk]
41 | key_buffer_size = 20M
42 | sort_buffer_size = 20M
43 | read_buffer = 2M
44 | write_buffer = 2M
45 |
46 | [mysqlhotcopy]
47 | interactive-timeout
48 |
--------------------------------------------------------------------------------
/alpine-mariadb/resources/etc/services.d/mariadb/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /usr/bin/mysqld_safe --pid-file=$PID_FILE
4 |
--------------------------------------------------------------------------------
/alpine-matrix/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN apk --virtual=.build-deps --no-cache add python2-dev alpine-sdk py2-pip libffi-dev libressl-dev && \
9 | apk --no-cache add curl tar python2 libffi libressl py2-psutil py2-pillow && \
10 | pip2 install https://github.com/matrix-org/synapse/tarball/master
11 |
--------------------------------------------------------------------------------
/alpine-matrix/README.md:
--------------------------------------------------------------------------------
1 | # alpine-canto
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-canto "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-canto "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-matrix/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-mozilla-syncserver/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN set -xe && apk add --quiet --no-cache --virtual=.run-deps py2-pip curl tar python2 openssl py-virtualenv libstdc++ && \
9 | apk add --quiet --no-cache --virtual=.build-deps alpine-sdk openssl-dev python2-dev && \
10 | addgroup -g 1000 -S syncserver && adduser -S -u 1000 -h /app -s /usr/sbin/nologin -D syncserver -G syncserver && \
11 | curl -L https://github.com/mozilla-services/syncserver/archive/master.tar.gz | tar zx -C /app --strip-components=1 && \
12 | cd /app && make build && chown -R syncserver:syncserver /app && \
13 | apk del --quiet --no-cache --purge .build-deps && apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* && \
14 | apk --no-cache --quiet fix openssl
15 |
16 | COPY resources/ /
17 |
18 | EXPOSE 5000/tcp
19 |
20 | VOLUME /data
21 |
--------------------------------------------------------------------------------
/alpine-mozilla-syncserver/README.md:
--------------------------------------------------------------------------------
1 | # alpine-mozilla-syncserver
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-mozilla-syncserver "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-mozilla-syncserver "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-mumble/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | ENV SUPW="admin"
4 |
5 | RUN apk --no-cache --quiet add murmur icu-libs && \
6 | apk del --quiet --no-cache --purge && \
7 | rm -rf /var/cache/apk/*
8 |
9 | COPY /resources/ /
10 |
11 | VOLUME /mumble
12 |
13 | EXPOSE 64738/udp 64738/tcp
14 |
--------------------------------------------------------------------------------
/alpine-mumble/README.md:
--------------------------------------------------------------------------------
1 | # alpine-mumble
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-mumble "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-mumble "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-mumble/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-mumble/resources/etc/cont-init.d/10-setup:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -f /mumble/murmur.sqlite ]; then
4 | exec /usr/bin/murmurd -fg -v -supw $SUPW
5 | fi
6 |
7 | exit 0
8 |
--------------------------------------------------------------------------------
/alpine-mumble/resources/etc/fix-attrs.d/01-mumble:
--------------------------------------------------------------------------------
1 | /mumble true murmur 0760 0750
2 |
--------------------------------------------------------------------------------
/alpine-mumble/resources/etc/services.d/10_mumble/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /usr/bin/murmurd -fg -v
4 |
--------------------------------------------------------------------------------
/alpine-musicbot/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | ENV APP_ENV=docker
9 |
10 | RUN apk add --no-cache ca-certificates ffmpeg opus python3 libsodium-dev py3-wheel py3-pip && \
11 | apk add --no-cache --virtual .build-deps gcc g++ git libffi-dev make musl-dev python3-dev && \
12 | addgroup -g 1000 -S musicbot && adduser -S -u 1000 -h /musicbot musicbot -D musicbot -G musicbot && \
13 | mkdir -p /app/MusicBot && git clone https://github.com/danerprog/MusicBot.git /app/MusicBot -b review && \
14 | cd /app/MusicBot && sed -i 's~^pynacl==[^$]*~pynacl==1.3.0~g' requirements.txt && \
15 | pip3 install --break-system-packages --no-cache-dir -r requirements.txt && pip3 install --break-system-packages --upgrade --force-reinstall --version websockets==10.2 && \
16 | chown -R musicbot:musicbot /app/MusicBot && \
17 | apk del .build-deps
18 |
19 | COPY resources/ /
20 |
21 | VOLUME /musicbot
22 |
--------------------------------------------------------------------------------
/alpine-musicbot/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-musicbot/resources/etc/cont-init.d/10-musicbot-init:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | [ ! -d /musicbot/config ] && mkdir /musicbot/config
4 |
5 | [ ! -f /musicbot/config/options.ini ] && cp /app/MusicBot/config/example_options.ini /musicbot/config/options.ini
6 | [ ! -f /musicbot/config/aliases.json ] && cp /app/MusicBot/config/example_aliases.ini /musicbot/config/aliases.json
7 | [ ! -f /musicbot/config/permissions.ini ] && cp /app/MusicBot/config/example_permissions.ini /musicbot/config/permissions.ini
8 | [ ! -f /musicbot/config/_autoplaylist.txt ] && cp /app/MusicBot/config/_autoplaylist.txt /musicbot/config/_autoplaylist.txt
9 |
10 | ln -fs /musicbot/config/options.ini /app/MusicBot/config/options.ini
11 | ln -fs /musicbot/config/aliases.json /app/MusicBot/config/aliases.json
12 | ln -fs /musicbot/config/permissions.ini /app/MusicBot/config/permissions.ini
13 | ln -fs /musicbot/config/_autoplaylist.txt /app/MusicBot/config/_autoplaylist.txt
14 |
15 | chown -R musicbot:musicbot /musicbot
16 |
--------------------------------------------------------------------------------
/alpine-musicbot/resources/etc/services.d/10_musicbot/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | cd /app/MusicBot
4 |
5 | exec /command/s6-setuidgid musicbot /usr/bin/python3 /app/MusicBot/run.py
6 |
--------------------------------------------------------------------------------
/alpine-netdata/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN \
9 | apk --no-cache --virtual=.run-deps add bash curl openssl netdata jq util-linux lsof && rm -rf /var/cache/apk/* && \
10 | ln -sf /dev/stdout /var/log/netdata/access.log && ln -sf /dev/stdout /var/log/netdata/debug.log && ln -sf /dev/stderr /var/log/netdata/error.log
11 |
12 | COPY resources/ /
13 |
14 | EXPOSE 19999/tcp
15 |
--------------------------------------------------------------------------------
/alpine-netdata/README.md:
--------------------------------------------------------------------------------
1 | # alpine-netdata
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-netdata "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-netdata "Get your own image badge on microbadger.com")
5 |
6 | ## Run
7 | ~~~
8 | docker run -d \
9 | --cap-add SYS_PTRACE \
10 | -v /proc:/host/proc:ro \
11 | -v /sys:/host/sys:ro \
12 | -v /var/run/docker.sock:/var/run/docker.sock:ro \
13 | -p 19999:19999 \
14 | combro2k/alpine-netdata:latest
15 | ~~~
16 |
--------------------------------------------------------------------------------
/alpine-netdata/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-netdata/resources/etc/cont-init.d/10-setup:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | chown root:root /usr/share/netdata/web/ -R
4 |
5 | exit 0
6 |
--------------------------------------------------------------------------------
/alpine-netdata/resources/etc/services.d/10_netdata/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /usr/sbin/netdata -D -u root -s /host -i 0.0.0.0 -p 19999
--------------------------------------------------------------------------------
/alpine-newsboat/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | ENV \
9 | OPML_URLS="https://combro2k.github.io/opml/news.opml" \
10 | NEWSBOAT_MAX_ITEMS=100 \
11 | NEWSBOAT_RELOAD_TIME=15
12 |
13 | RUN apk --no-cache add newsboat w3m su-exec && addgroup -g 1000 -S newsboat && \
14 | adduser -S -u 1000 -h /newsboat newsboat -D newsboat -G newsboat && \
15 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/*
16 |
17 | COPY resources/ /
18 |
19 | VOLUME /newsboat/.newsboat
20 |
21 | CMD ["/usr/local/bin/newsboat"]
22 |
--------------------------------------------------------------------------------
/alpine-newsboat/README.md:
--------------------------------------------------------------------------------
1 | # alpine-newsboat
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-newsboat "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-newsboat "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-newsboat/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-newsboat/resources/etc/cont-init.d/10-setup:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -f /newsboat/.newsboat/config ]; then
4 | cat << EOF > /newsboat/.newsboat/config
5 |
6 | auto-reload yes
7 | reload-time ${NEWSBOAT_RELOAD_TIME}
8 | max-items ${NEWSBOAT_MAX_ITEMS}
9 | browser "w3m %u"
10 | user-agent "NewsBoat"
11 | show-keymap-hint yes
12 |
13 | urls-source "opml"
14 | opml-url ${OPML_URLS}
15 |
16 | EOF
17 |
18 | chown newsboat:newsboat /newsboat/.newsboat/config
19 | fi
20 |
21 | exit 0
22 |
--------------------------------------------------------------------------------
/alpine-newsboat/resources/etc/fix-attrs.d/01-newsboat:
--------------------------------------------------------------------------------
1 | /newsboat/.newsboat true newsboat 0760 0750
2 | /usr/local/bin/newsboat false newsboat 0760 0750
3 |
--------------------------------------------------------------------------------
/alpine-newsboat/resources/usr/local/bin/newsboat:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | /sbin/su-exec newsboat /usr/bin/newsboat "${@}"
4 |
--------------------------------------------------------------------------------
/alpine-nginx-freshrss-php7/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-nginx:php7
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN set -xe && apk --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing --quiet --no-cache add --virtual=run-deps php7-iconv php7-zlib php7-openssl php7-ctype php7-xml php7-pdo_mysql php7-pdo php7-pdo_sqlite php7-zip php7-fileinfo php7-ctype && \
9 | curl -L https://github.com/FreshRSS/FreshRSS/archive/master.tar.gz | tar zx -C /data/web --strip-components=1 && \
10 | apk del --no-cache --purge && rm -rf /var/cache/apk/*
11 |
12 | COPY resources/ /
13 |
14 | VOLUME /freshrss
15 |
--------------------------------------------------------------------------------
/alpine-nginx-freshrss-php7/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-freshrss
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-freshrss:php7 "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-freshrss:php7 "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-nginx-freshrss-php7/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-freshrss-php7/resources/etc/cont-finish.d/99-freshrss:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -L /data/web/data/config.php ]; then
4 | echo "[FreshRSS FINISH] Saving existing config.."
5 |
6 | cp /data/web/data/config.php /freshrss/config.php
7 | rm /data/web/data/config.php
8 |
9 | ln -s /freshrss/config.php /data/web/data/config.php
10 | fi
11 |
12 | exit 0
13 |
--------------------------------------------------------------------------------
/alpine-nginx-freshrss-php7/resources/etc/cont-init.d/99-freshrss:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ -f /data/web/data/do-install.txt ] && [ -f /freshrss/config.php ]; then
4 | echo "[FreshRSS INIT] Using existing config.."
5 |
6 | rm -f /data/web/data/config.php
7 | ln -s /freshrss/config.php /data/web/data/config.php
8 | rm -f /data/web/data/do-install.txt
9 | fi
10 |
11 | if [ ! -L /data/web/data/users ]; then
12 | echo "[FreshRSS INIT] Link user directory"
13 |
14 | if [ ! -d /freshrss/users ]; then
15 | mv /data/web/data/users /freshrss/users
16 |
17 | ln -s /freshrss/users /data/web/data/users
18 | else
19 | rm -fr /data/web/data/users
20 |
21 | ln -s /freshrss/users /data/web/data/users
22 | fi
23 |
24 | fi
25 |
26 | chown -R www-data:www-data /data/web /freshrss
27 |
28 | exit 0
29 |
--------------------------------------------------------------------------------
/alpine-nginx-freshrss-php7/resources/etc/crontabs/root:
--------------------------------------------------------------------------------
1 | */5 * * * * /command/s6-setuidgid www-data php -f /data/web/app/actualize_script.php > /dev/stdout 2>&1
2 |
--------------------------------------------------------------------------------
/alpine-nginx-freshrss-php7/resources/etc/services.d/crond/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /usr/sbin/crond -f -S -c /etc/crontabs
4 |
--------------------------------------------------------------------------------
/alpine-nginx-freshrss/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-nginx:php5
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN set -xe && apk --quiet --no-cache add --virtual=run-deps php5-iconv php5-zlib php5-openssl php5-ctype php5-xml php5-pdo_mysql php5-pdo php5-pdo_sqlite php5-zip && \
9 | curl -L https://github.com/FreshRSS/FreshRSS/archive/master.tar.gz | tar zx -C /data/web --strip-components=1 && \
10 | apk del --no-cache --purge && rm -rf /var/cache/apk/*
11 |
12 | COPY resources/ /
13 |
14 | VOLUME /freshrss
15 |
--------------------------------------------------------------------------------
/alpine-nginx-freshrss/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-freshrss
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-freshrss "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-freshrss "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-nginx-freshrss/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-freshrss/resources/etc/cont-finish.d/99-freshrss:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -L /data/web/data/config.php ]; then
4 | echo "[FreshRSS FINISH] Saving existing config.."
5 |
6 | cp /data/web/data/config.php /freshrss/config.php
7 | rm /data/web/data/config.php
8 |
9 | ln -s /freshrss/config.php /data/web/data/config.php
10 | fi
11 |
12 | exit 0
13 |
--------------------------------------------------------------------------------
/alpine-nginx-freshrss/resources/etc/cont-init.d/99-freshrss:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ -f /data/web/data/do-install.txt ] && [ -f /freshrss/config.php ]; then
4 | echo "[FreshRSS INIT] Using existing config.."
5 |
6 | rm -f /data/web/data/config.php
7 | ln -s /freshrss/config.php /data/web/data/config.php
8 | rm -f /data/web/data/do-install.txt
9 | fi
10 |
11 | if [ ! -L /data/web/data/users ]; then
12 | echo "[FreshRSS INIT] Link user directory"
13 |
14 | if [ ! -d /freshrss/users ]; then
15 | mv /data/web/data/users /freshrss/users
16 |
17 | ln -s /freshrss/users /data/web/data/users
18 | else
19 | rm -fr /data/web/data/users
20 |
21 | ln -s /freshrss/users /data/web/data/users
22 | fi
23 |
24 | fi
25 |
26 | chown -R www-data:www-data /data/web /freshrss
27 |
28 | exit 0
29 |
--------------------------------------------------------------------------------
/alpine-nginx-freshrss/resources/etc/crontabs/root:
--------------------------------------------------------------------------------
1 | */5 * * * * /command/s6-setuidgid www-data php -f /data/web/app/actualize_script.php > /dev/stdout 2>&1
2 |
--------------------------------------------------------------------------------
/alpine-nginx-freshrss/resources/etc/services.d/crond/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /usr/sbin/crond -f -S -c /etc/crontabs
4 |
--------------------------------------------------------------------------------
/alpine-nginx-matomo/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-nginx:php8
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN set -xe && apk --quiet --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/ add --virtual=run-deps php83-iconv php83-zlib php83-imap php83-openssl php83-pdo_sqlite php83-pdo_mysql php83-ctype && \
9 | rm /data/web -fr && mkdir /data/web /matomo && cd /data/web && curl --silent --location https://builds.matomo.org/matomo-latest.tar.gz | \
10 | tar zxv -C /data/web --strip-components=1 && cd /data/web && chown www-data:www-data /data/web && \
11 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/*
12 |
13 | VOLUME /matomo
14 |
15 | COPY resources/ /
16 |
--------------------------------------------------------------------------------
/alpine-nginx-matomo/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-matomo
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-matomo "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-matomo "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-nginx-matomo/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-matomo/resources/etc/php8/conf.d/zzz-custom.ini:
--------------------------------------------------------------------------------
1 | always_populate_raw_post_data = -1
2 |
--------------------------------------------------------------------------------
/alpine-nginx-nextcloud/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-nextcloud
2 |
--------------------------------------------------------------------------------
/alpine-nginx-nextcloud/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-nextcloud/resources/etc/crontabs/www-data:
--------------------------------------------------------------------------------
1 | */15 * * * * php -f /data/web/cron.php
2 |
--------------------------------------------------------------------------------
/alpine-nginx-nextcloud/resources/etc/fix-attrs.d/02-usr-bin:
--------------------------------------------------------------------------------
1 | /usr/bin/occ false www-data 0760 0750
2 |
--------------------------------------------------------------------------------
/alpine-nginx-nextcloud/resources/etc/php8/conf.d/99_custom.ini:
--------------------------------------------------------------------------------
1 | apc.enable_cli = 1
2 | opcache.enable=1
3 | opcache.enable_cli=1
4 | opcache.interned_strings_buffer=8
5 | opcache.max_accelerated_files=10000
6 | opcache.memory_consumption=128
7 | opcache.save_comments=1
8 | opcache.revalidate_freq=1
9 | upload_max_filesize=512M
10 | post_max_size=512M
11 | memory_limit=512M
12 |
--------------------------------------------------------------------------------
/alpine-nginx-nextcloud/resources/etc/services.d/cron/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | /usr/sbin/crond -f -S -l 1 -c /etc/crontabs
4 |
--------------------------------------------------------------------------------
/alpine-nginx-nextcloud/resources/usr/bin/occ:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | /sbin/su-exec www-data /usr/bin/php /data/web/occ "${@}"
4 |
--------------------------------------------------------------------------------
/alpine-nginx-organizr/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-nginx:php8.2
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | ENV ORGANIZR_BRANCH=v2-master
9 |
10 | RUN set -xe && apk add --virtual=run-deps \
11 | curl php82-iconv php82-zlib php82-imap php82-openssl php82-pdo_sqlite php82-pdo_mysql php82-sqlite3 sqlite-libs \
12 | php82-zip php82 php82-simplexml && rm /data/web -fr && mkdir /config /data/web && cd /data/web && \
13 | curl -L https://github.com/causefx/Organizr/archive/refs/heads/v2-master.tar.gz | tar zx -C /data/web --strip-components=1 && \
14 | ln -s /config /data/web/data && chown -R www-data:www-data /data/web /config && apk del --quiet --no-cache --purge && \
15 | rm -rf /var/cache/apk/*
16 |
17 | COPY resources/ /
18 |
19 | VOLUME /config
--------------------------------------------------------------------------------
/alpine-nginx-organizr/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-organizr
2 |
--------------------------------------------------------------------------------
/alpine-nginx-organizr/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-organizr/resources/etc/fix-attrs.d/01-config:
--------------------------------------------------------------------------------
1 | /config true www-data 0600 0700
--------------------------------------------------------------------------------
/alpine-nginx-php5/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-php5
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-php5 "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-php5 "Get your own image badge on microbadger.com")
5 |
6 | Data is stored in /data/web
7 |
--------------------------------------------------------------------------------
/alpine-nginx-php5/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-php5/resources/data/web/index.php:
--------------------------------------------------------------------------------
1 | &2 echo 'ERROR: Invalid installer signature'
10 | rm composer-setup.php
11 | exit 1
12 | fi
13 |
14 | echo "Installing composer for the first time run..."
15 |
16 | apk --no-cache add php5-zlib php5-phar php5-iconv
17 |
18 | php composer-setup.php --quiet --install-dir=/usr/bin --filename=composer
19 |
20 | RESULT=$?
21 | rm composer-setup.php
22 |
23 | if [ $RESULT -eq 0 ]; then
24 | exec /command/s6-setuidgid www-data /usr/bin/composer $@
25 | fi
26 |
27 | exit $RESULT
28 |
--------------------------------------------------------------------------------
/alpine-nginx-php7/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-php7
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-php7 "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-php7 "Get your own image badge on microbadger.com")
5 |
6 | Data is stored in /data/web
7 |
--------------------------------------------------------------------------------
/alpine-nginx-php7/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-php7/resources/data/web/index.php:
--------------------------------------------------------------------------------
1 | &2 echo 'ERROR: Invalid installer signature'
10 | rm composer-setup.php
11 | exit 1
12 | fi
13 |
14 | echo "Installing composer for the first time run..."
15 |
16 | apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing php7-phar php7-iconv php7-mbstring php7-zlib
17 |
18 | php composer-setup.php --quiet --install-dir=/usr/bin --filename=composer
19 | RESULT=$?
20 | rm composer-setup.php
21 |
22 | if [ $RESULT -eq 0 ]; then
23 | exec /command/s6-setuidgid www-data /usr/bin/composer $@
24 | fi
25 |
26 | exit $RESULT
27 |
--------------------------------------------------------------------------------
/alpine-nginx-php8/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-php8
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-php8 "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-php8 "Get your own image badge on microbadger.com")
5 |
6 | Data is stored in /data/web
7 |
--------------------------------------------------------------------------------
/alpine-nginx-php8/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-php8/resources/data/web/index.php:
--------------------------------------------------------------------------------
1 | &2 echo 'ERROR: Invalid installer signature'
10 | rm composer-setup.php
11 | exit 1
12 | fi
13 |
14 | echo "Installing composer for the first time run..."
15 |
16 | apk --no-cache add php83-phar php83-iconv php83-mbstring php83-zlib
17 |
18 | php composer-setup.php --quiet --install-dir=/usr/bin --filename=composer
19 | RESULT=$?
20 | rm composer-setup.php
21 |
22 | if [ $RESULT -eq 0 ]; then
23 | exec /command/s6-setuidgid www-data /usr/bin/composer $@
24 | fi
25 |
26 | exit $RESULT
27 |
--------------------------------------------------------------------------------
/alpine-nginx-php82/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-php82
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-php82 "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-php82 "Get your own image badge on microbadger.com")
5 |
6 | Data is stored in /data/web
7 |
--------------------------------------------------------------------------------
/alpine-nginx-php82/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-php82/resources/data/web/index.php:
--------------------------------------------------------------------------------
1 | &2 echo 'ERROR: Invalid installer signature'
10 | rm composer-setup.php
11 | exit 1
12 | fi
13 |
14 | echo "Installing composer for the first time run..."
15 |
16 | apk --no-cache add php82-phar php82-iconv php82-mbstring php82-zlib
17 |
18 | php composer-setup.php --quiet --install-dir=/usr/bin --filename=composer
19 | RESULT=$?
20 | rm composer-setup.php
21 |
22 | if [ $RESULT -eq 0 ]; then
23 | exec /command/s6-setuidgid www-data /usr/bin/composer $@
24 | fi
25 |
26 | exit $RESULT
27 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb-php7/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-nginx:php7
2 |
3 | ENV \
4 | PHPBB_MAINLINE=3.3 \
5 | PHPBB_VERSION=3.3.10
6 |
7 | LABEL org.label-schema.build-date=$BUILD_DATE \
8 | org.label-schema.vcs-ref=$VCS_REF \
9 | org.label-schema.vcs-url=$VCS_URL \
10 | org.label-scheme.dockerfile=$DOCKERFILE
11 |
12 | RUN set -xe && apk --quiet --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/ \
13 | add --virtual=run-deps su-exec php7-iconv php7-zlib php7-openssl php7-ctype php7-xml php7-pdo_mysql \
14 | php7-pdo php7-pdo_sqlite php7-zip php7-tokenizer && mkdir /phpbb && chown www-data:www-data /phpbb -R && \
15 | curl -L https://download.phpbb.com/pub/release/${PHPBB_MAINLINE}/${PHPBB_VERSION}/phpBB-${PHPBB_VERSION}.tar.bz2 | tar jx -C /data/web --strip-components=1 && \
16 | chown www-data:www-data /data/web -R && \
17 | apk del --no-cache --purge && rm -rf /var/cache/apk/*
18 |
19 | COPY resources/ /
20 |
21 | VOLUME /phpbb
22 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb-php7/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-phpbb:php7
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-phpbb:php7 "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-phpbb:php7 "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb-php7/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb-php7/resources/etc/cont-init.d/10-pre:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ $WWW_UID -ne 82 ]; then
4 | /usr/sbin/usermod -u $WWW_UID www-data
5 | fi
6 |
7 | if [ $WWW_GID -ne 82 ]; then
8 | /usr/sbin/groupmod -g $WWW_GID www-data
9 | fi
10 |
11 | if [ $WWW_UID -ne 82 ] || [ $WWW_GID -ne 82 ]; then
12 | find /data/web /phpbb ! -user $WWW_UID -o ! -group $WWW_UID -exec chown $WWW_UID:$WWW_UID {} \;
13 | fi
14 |
15 | exit 0
16 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb-php7/resources/etc/cont-init.d/99-migrate:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -d /data/web/install ]; then
4 | /usr/bin/phpbbcli db:migrate
5 | fi
6 |
7 | exit 0
8 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb-php7/resources/etc/crontabs/root:
--------------------------------------------------------------------------------
1 | */5 * * * * test ! -d /data/web/install && /usr/bin/phpbbcli cron:run > /dev/stdout 2>&1
2 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb-php7/resources/etc/fix-attrs.d/02-usr-bin:
--------------------------------------------------------------------------------
1 | /usr/bin/phpbbcli false www-data 0750 0750
2 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb-php7/resources/etc/services.d/crond/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /usr/sbin/crond -f -S -c /etc/crontabs
4 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb-php7/resources/usr/bin/phpbbcli:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | /sbin/su-exec www-data /usr/bin/php /data/web/bin/phpbbcli.php "${@}"
4 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-nginx:php5
2 |
3 | ENV \
4 | PHPBB_MAINLINE=3.3 \
5 | PHPBB_VERSION=3.3.9
6 |
7 | LABEL org.label-schema.build-date=$BUILD_DATE \
8 | org.label-schema.vcs-ref=$VCS_REF \
9 | org.label-schema.vcs-url=$VCS_URL \
10 | org.label-scheme.dockerfile=$DOCKERFILE
11 |
12 | RUN set -xe && apk --quiet --no-cache add --virtual=run-deps su-exec php5-iconv php5-zlib php5-openssl php5-ctype php5-xml php5-pdo_mysql \
13 | php5-pdo php5-pdo_sqlite php5-zip && mkdir /phpbb && chown www-data:www-data /phpbb -R && \
14 | curl -k -L https://download.phpbb.com/pub/release/${PHPBB_MAINLINE}/${PHPBB_VERSION}/phpBB-${PHPBB_VERSION}.tar.bz2 | tar jx -C /data/web --strip-components=1 && \
15 | chown www-data:www-data /data/web -R && \
16 | apk del --no-cache --purge && rm -rf /var/cache/apk/*
17 |
18 | COPY resources/ /
19 |
20 | VOLUME /phpbb
21 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-phpbb
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-phpbb "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-phpbb "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb/resources/etc/cont-init.d/10-pre:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ $WWW_UID -ne 82 ]; then
4 | /usr/sbin/usermod -u $WWW_UID www-data
5 | fi
6 |
7 | if [ $WWW_GID -ne 82 ]; then
8 | /usr/sbin/groupmod -g $WWW_GID www-data
9 | fi
10 |
11 | if [ $WWW_UID -ne 82 ] || [ $WWW_GID -ne 82 ]; then
12 | find /data/web /phpbb ! -user $WWW_UID -o ! -group $WWW_UID -exec chown $WWW_UID:$WWW_UID {} \;
13 | fi
14 |
15 | exit 0
16 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb/resources/etc/cont-init.d/99-migrate:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -d /data/web/install ]; then
4 | /usr/bin/phpbbcli db:migrate
5 | fi
6 |
7 | exit 0
8 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb/resources/etc/crontabs/root:
--------------------------------------------------------------------------------
1 | */5 * * * * test ! -d /data/web/install && /usr/bin/phpbbcli cron:run > /dev/stdout 2>&1
2 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb/resources/etc/fix-attrs.d/02-usr-bin:
--------------------------------------------------------------------------------
1 | /usr/bin/phpbbcli false www-data 0750 0750
2 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb/resources/etc/services.d/crond/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /usr/sbin/crond -f -S -c /etc/crontabs
4 |
--------------------------------------------------------------------------------
/alpine-nginx-phpbb/resources/usr/bin/phpbbcli:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | /sbin/su-exec www-data /usr/bin/php /data/web/bin/phpbbcli.php "${@}"
4 |
--------------------------------------------------------------------------------
/alpine-nginx-rainloop-php7/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-nginx:php7
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN set -xe && apk --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing --no-cache add --virtual=run-deps curl php7-iconv php7-zlib php7-imap php7-openssl php7-pdo_sqlite php7-pdo_mysql php7-sqlite3 sqlite-libs && \
9 | rm /data/web -fr && mkdir /data/web /rainloop && cd /data/web && curl -L http://www.rainloop.net/repository/webmail/rainloop-latest.zip --output /tmp/temp.zip && \
10 | unzip -q /tmp/temp.zip && chown www-data:www-data /data/web -R && rm -fr /data/web/data && rm /tmp/temp.zip && apk del --quiet --no-cache --purge && \
11 | rm -rf /var/cache/apk/*
12 |
13 | VOLUME /rainloop
14 |
15 | COPY resources/ /
16 |
--------------------------------------------------------------------------------
/alpine-nginx-rainloop-php7/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-rainloop
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-rainloop:php7 "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-rainloop:php7 "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-nginx-rainloop-php7/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-rainloop-php7/resources/etc/cont-finish.d/99-rainloop:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ -d /data/web/data ] && [ ! -L /data/web/data ]; then
4 | echo "Moving data to mounted volume"
5 | mv /data/web/data /rainloop/data
6 | fi
7 |
8 | exit 0
9 |
--------------------------------------------------------------------------------
/alpine-nginx-rainloop-php7/resources/etc/cont-init.d/99-rainloop:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | chown -R www-data:www-data /data/web /rainloop
4 |
5 | if [ -d /rainloop/data ]; then
6 | echo "Symlinking data to /data/web/data"
7 |
8 | rm -fr /data/web/data
9 | ln -s /rainloop/data /data/web/data
10 | fi
11 |
12 | find /data/web -type d -exec chmod 755 {} \;
13 | find /data/web -type f -exec chmod 644 {} \;
14 |
15 | find /rainloop -type d -exec chmod 755 {} \;
16 | find /rainloop -type f -exec chmod 644 {} \;
17 |
18 | exit 0
19 |
--------------------------------------------------------------------------------
/alpine-nginx-rainloop-php8/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-nginx:php8
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN set -xe && apk --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/ add --virtual=run-deps curl php83-iconv php83-zlib php83-imap php83-openssl php83-pdo_sqlite php83-pdo_mysql php83-sqlite3 sqlite-libs && \
9 | rm /data/web -fr && mkdir /data/web /rainloop && cd /data/web && curl -L http://www.rainloop.net/repository/webmail/rainloop-latest.zip --output /tmp/temp.zip && \
10 | unzip -q /tmp/temp.zip && chown www-data:www-data /data/web -R && rm -fr /data/web/data && rm /tmp/temp.zip && apk del --quiet --no-cache --purge && \
11 | rm -rf /var/cache/apk/*
12 |
13 | VOLUME /rainloop
14 |
15 | COPY resources/ /
16 |
--------------------------------------------------------------------------------
/alpine-nginx-rainloop-php8/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-rainloop
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-rainloop:php7 "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-rainloop:php7 "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-nginx-rainloop-php8/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-rainloop-php8/resources/etc/cont-finish.d/99-rainloop:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ -d /data/web/data ] && [ ! -L /data/web/data ]; then
4 | echo "Moving data to mounted volume"
5 | mv /data/web/data /rainloop/data
6 | fi
7 |
8 | exit 0
9 |
--------------------------------------------------------------------------------
/alpine-nginx-rainloop-php8/resources/etc/cont-init.d/99-rainloop:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | chown -R www-data:www-data /data/web /rainloop
4 |
5 | if [ -d /rainloop/data ]; then
6 | echo "Symlinking data to /data/web/data"
7 |
8 | rm -fr /data/web/data
9 | ln -s /rainloop/data /data/web/data
10 | fi
11 |
12 | find /data/web -type d -exec chmod 755 {} \;
13 | find /data/web -type f -exec chmod 644 {} \;
14 |
15 | find /rainloop -type d -exec chmod 755 {} \;
16 | find /rainloop -type f -exec chmod 644 {} \;
17 |
18 | exit 0
19 |
--------------------------------------------------------------------------------
/alpine-nginx-rainloop/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-nginx:php5
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN set -xe && apk --quiet --no-cache add --virtual=run-deps php5-iconv php5-zlib php5-imap php5-openssl php5-pdo_sqlite php5-pdo_mysql && \
9 | rm /data/web -fr && mkdir /data/web /rainloop && cd /data/web && curl -L http://www.rainloop.net/repository/webmail/rainloop-latest.zip --output /tmp/temp.zip && \
10 | unzip -q /tmp/temp.zip && chown www-data:www-data /data/web -R && rm -fr /data/web/data && rm /tmp/temp.zip && apk del --quiet --no-cache --purge && \
11 | rm -rf /var/cache/apk/*
12 |
13 | VOLUME /rainloop
14 |
15 | COPY resources/ /
16 |
--------------------------------------------------------------------------------
/alpine-nginx-rainloop/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-rainloop
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-rainloop "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-rainloop "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-nginx-rainloop/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-rainloop/resources/etc/cont-finish.d/99-rainloop:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ -d /data/web/data ] && [ ! -L /data/web/data ]; then
4 | echo "Moving data to mounted volume"
5 | mv /data/web/data /rainloop/data
6 | fi
7 |
8 | exit 0
9 |
--------------------------------------------------------------------------------
/alpine-nginx-rainloop/resources/etc/cont-init.d/99-rainloop:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | chown -R www-data:www-data /data/web /rainloop
4 |
5 | if [ -d /rainloop/data ]; then
6 | echo "Symlinking data to /data/web/data"
7 |
8 | rm -fr /data/web/data
9 | ln -s /rainloop/data /data/web/data
10 | fi
11 |
12 | /usr/bin/find /data/web -type d -exec chmod 755 {} \;
13 | /usr/bin/find /data/web -type f -exec chmod 644 {} \;
14 |
15 | /usr/bin/find /rainloop -type d -exec chmod 755 {} \;
16 | /usr/bin/find /rainloop -type f -exec chmod 644 {} \;
17 |
18 | exit 0
19 |
--------------------------------------------------------------------------------
/alpine-nginx-shaarli-php7/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-nginx:php7
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN set -xe && apk --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing --quiet --no-cache add --virtual=run-deps php7-iconv php7-zlib php7-imap php7-openssl php7-simplexml php7-tokenizer php7-ctype && \
9 | cd /data && curl --location --silent https://github.com/shaarli/Shaarli/archive/latest.tar.gz | tar zx -C /data/web --strip-components=1 && \
10 | chown www-data:www-data /data/web -R && cd /data/web && /usr/bin/composer install --no-dev && \
11 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/*
12 |
13 | VOLUME /data/web/data
14 |
--------------------------------------------------------------------------------
/alpine-nginx-shaarli-php7/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-shaarli:php7
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-shaarli:php7 "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-shaarli:php7 "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-nginx-shaarli-php7/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-shaarli/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-nginx:php5
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN set -xe && apk --quiet --no-cache add --virtual=run-deps php5-iconv php5-zlib php5-imap php5-openssl php5-ctype && \
9 | cd /data && curl --location --silent https://github.com/shaarli/Shaarli/archive/latest.tar.gz | tar zx -C /data/web --strip-components=1 && \
10 | chown www-data:www-data /data/web -R && cd /data/web && /usr/bin/composer install --no-dev && \
11 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/*
12 |
13 | VOLUME /data/web/data
14 |
--------------------------------------------------------------------------------
/alpine-nginx-shaarli/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-shaarli
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-shaarli "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-shaarli "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-nginx-shaarli/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-snappymail-php8/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-snappymail-php8
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-snappymail:php8 "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-snappymail:php8 "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-nginx-snappymail-php8/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-snappymail-php8/resources/etc/cont-finish.d/99-snappymail:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ -d /data/web/data ] && [ ! -L /data/web/data ]; then
4 | echo "Moving data to mounted volume"
5 | mv /data/web/data /snappymail/data
6 | fi
7 |
8 | exit 0
9 |
--------------------------------------------------------------------------------
/alpine-nginx-snappymail-php8/resources/etc/cont-init.d/99-snappymail:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | chown -R www-data:www-data /data/web /snappymail
4 |
5 | if [ -d /snappymail/data ]; then
6 | echo "Symlinking data to /data/web/data"
7 |
8 | rm -fr /data/web/data
9 | ln -s /snappymail/data /data/web/data
10 | fi
11 |
12 | find /data/web -type d -exec chmod 755 {} \;
13 | find /data/web -type f -exec chmod 644 {} \;
14 |
15 | find /snappymail -type d -exec chmod 755 {} \;
16 | find /snappymail -type f -exec chmod 644 {} \;
17 |
18 | if [ -f /snappymail/data/_data_/_default_/admin_password.txt ]; then
19 | echo -n "Default Admin password: "
20 | cat /snappymail/data/_data_/_default_/admin_password.txt
21 | fi
22 |
23 | exit 0
24 |
--------------------------------------------------------------------------------
/alpine-nginx-snappymail-php8/resources/etc/php8/conf.d/gnupg.ini:
--------------------------------------------------------------------------------
1 | extension=gnupg.so
2 |
--------------------------------------------------------------------------------
/alpine-nginx-static/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | ONBUILD ARG BUILD_DATE=now
4 | ONBUILD ARG VCS_REF=master
5 | ONBUILD ARG VCS_URL=https://github.com/combro2k/dockerfiles/tree/master/alpine-nginx-static
6 | ONBUILD ARG DOCKERFILE=alpine-nginx-static/Dockerfile
7 |
8 | LABEL org.label-schema.build-date=$BUILD_DATE \
9 | org.label-schema.vcs-ref=$VCS_REF \
10 | org.label-schema.vcs-url=$VCS_URL \
11 | org.label-scheme.dockerfile=$DOCKERFILE
12 |
13 | ENV WWW_UID=82 WWW_GID=82
14 |
15 | RUN set -xe && apk add --quiet --no-cache --virtual=.run-deps nginx git ca-certificates curl tar && adduser -u 82 -D -S -G www-data www-data && \
16 | ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log && \
17 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/*
18 |
19 | COPY resources/ /
20 |
21 | #VOLUME /data/web
22 |
23 | EXPOSE 80/tcp
24 |
--------------------------------------------------------------------------------
/alpine-nginx-static/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-static
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-static "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-static "Get your own image badge on microbadger.com")
5 |
6 | Data is stored in /data/web
7 |
--------------------------------------------------------------------------------
/alpine-nginx-static/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-static/resources/data/web/index.html:
--------------------------------------------------------------------------------
1 | Static content
2 |
--------------------------------------------------------------------------------
/alpine-nginx-static/resources/etc/cont-init.d/10-pre:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ $WWW_UID -ne 82 ]; then
4 | /usr/sbin/usermod -u $WWW_UID www-data
5 | fi
6 |
7 | if [ $WWW_GID -ne 82 ]; then
8 | /usr/sbin/groupmod -g $WWW_GID www-data
9 | fi
10 |
11 | if [ $WWW_UID -ne 82 ] || [ $WWW_GID -ne 82 ]; then
12 | /usr/bin/find /data/web ! -user $WWW_UID -o ! -group $WWW_UID -exec chown $WWW_UID:$WWW_UID {} \;
13 | fi
14 |
15 | exit 0
16 |
--------------------------------------------------------------------------------
/alpine-nginx-static/resources/etc/services.d/.s6-svscan/finish:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | exit 0
--------------------------------------------------------------------------------
/alpine-nginx-static/resources/etc/services.d/nginx/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /usr/sbin/nginx
4 |
--------------------------------------------------------------------------------
/alpine-nginx-wordpress-php7/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-nginx:php7
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN set -xe && apk --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing --quiet --no-cache add php7-fpm php7-json php7-zlib php7-xml php7-pdo php7-phar php7-openssl \
9 | php7-pdo_mysql php7-mysqli php7-gd php7-exif php7-fileinfo php7-mbstring php7-pecl-imagick php7-zip \
10 | php7-iconv php7-mcrypt && rm /data/web -fr && mkdir /data/web /wordpress && curl --location https://wordpress.org/latest.tar.gz | \
11 | tar zx -C /data/web --strip-components=1 && apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/*
12 |
13 | VOLUME /wordpress
14 |
15 | COPY resources/ /
16 |
--------------------------------------------------------------------------------
/alpine-nginx-wordpress-php7/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-wordpress
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-wordpress:php7 "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-wordpress:php7 "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-nginx-wordpress-php7/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-wordpress-php7/resources/etc/cont-finish.d/99-wordpress:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ -f /data/web/wp-config.php ] && [ ! -L /data/web/wp-config.php ]; then
4 | echo "Move wp-config.php to mounted volume"
5 | mv /data/web/wp-config.php /wordpress/wp-config.php
6 | fi
7 |
8 | if [ -d /data/web/wp-content ] && [ ! -L /data/web/wp-content ]; then
9 | echo "Copying wp-content to mounted volume"
10 | mv /data/web/wp-content /wordpress/wp-content
11 | fi
12 |
13 | exit 0
14 |
--------------------------------------------------------------------------------
/alpine-nginx-wordpress-php7/resources/etc/cont-init.d/99-wordpress:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | chown -R www-data:www-data /data/web /wordpress
4 |
5 | if [ -f /wordpress/wp-config.php ]; then
6 | echo "Symlinking wp-config.php to /data/web/wp-config.php"
7 |
8 | rm -fr /data/web/wp-config.php
9 | ln -s /wordpress/wp-config.php /data/web/wp-config.php
10 | fi
11 |
12 | if [ -d /wordpress/wp-content ]; then
13 | echo "Symlinking wp-content to /data/web/wp-content"
14 |
15 | rm -fr /data/web/wp-content
16 | ln -s /wordpress/wp-content /data/web/wp-content
17 | fi
18 |
19 | exit 0
20 |
--------------------------------------------------------------------------------
/alpine-nginx-wordpress-php8/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-nginx:php8
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN set -xe && apk --quiet --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/ add php83-fpm php83-json php83-zlib php83-xml php83-pdo php83-phar php83-openssl \
9 | php83-pdo_mysql php83-mysqli php83-gd php83-exif php83-fileinfo php83-mbstring php83-pecl-imagick php83-zip \
10 | php83-iconv php83-pecl-mcrypt && rm /data/web -fr && mkdir /data/web /wordpress && curl --location https://wordpress.org/latest.tar.gz | \
11 | tar zx -C /data/web --strip-components=1 && apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/*
12 |
13 | VOLUME /wordpress
14 |
15 | COPY resources/ /
16 |
--------------------------------------------------------------------------------
/alpine-nginx-wordpress-php8/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-wordpress
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-wordpress:php8 "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-wordpress:php8 "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-nginx-wordpress-php8/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-wordpress-php8/resources/etc/cont-finish.d/99-wordpress:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ -f /data/web/wp-config.php ] && [ ! -L /data/web/wp-config.php ]; then
4 | echo "Move wp-config.php to mounted volume"
5 | mv /data/web/wp-config.php /wordpress/wp-config.php
6 | fi
7 |
8 | if [ -d /data/web/wp-content ] && [ ! -L /data/web/wp-content ]; then
9 | echo "Copying wp-content to mounted volume"
10 | mv /data/web/wp-content /wordpress/wp-content
11 | fi
12 |
13 | exit 0
14 |
--------------------------------------------------------------------------------
/alpine-nginx-wordpress-php8/resources/etc/cont-init.d/99-wordpress:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | chown -R www-data:www-data /data/web /wordpress
4 |
5 | if [ -f /wordpress/wp-config.php ]; then
6 | echo "Symlinking wp-config.php to /data/web/wp-config.php"
7 |
8 | rm -fr /data/web/wp-config.php
9 | ln -s /wordpress/wp-config.php /data/web/wp-config.php
10 | fi
11 |
12 | if [ -d /wordpress/wp-content ]; then
13 | echo "Symlinking wp-content to /data/web/wp-content"
14 |
15 | rm -fr /data/web/wp-content
16 | ln -s /wordpress/wp-content /data/web/wp-content
17 | fi
18 |
19 | exit 0
20 |
--------------------------------------------------------------------------------
/alpine-nginx-yourls-php7/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-yourls
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-yourls:php7 "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-yourls:php7 "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-nginx-yourls-php7/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nginx-yourls/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-nginx:php5
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | ENV version=master \
9 | YOURLS_DB_USER="yourls" \
10 | YOURLS_DB_PASS="yourls" \
11 | YOURLS_DB_NAME="yourls" \
12 | YOURLS_DB_HOST="localhost" \
13 | YOURLS_DB_PREFIX="yourls_" \
14 | YOURLS_SITE="http://yourls.org" \
15 | YOURLS_HOURS_OFFSET="0" \
16 | YOURLS_LANG="" \
17 | YOURLS_ADMIN_USER="admin" \
18 | YOURLS_ADMIN_PASSWD="pass" \
19 | YOURLS_COOKIEKEY="modify this text with something random" \
20 | YOURLS_URL_CONVERT="62"
21 |
22 | RUN set -xe && apk --quiet --no-cache add --virtual=run-deps php5-iconv php5-zlib php5-openssl php5-pdo_mysql && \
23 | rm /data/web -fr && mkdir /data/web && curl -L https://github.com/YOURLS/YOURLS/archive/master.tar.gz | tar zx -C /data/web --strip-components=1 && \
24 | chown www-data:www-data -R /data/web && apk del --no-cache --purge && rm -rf /var/cache/apk/*
25 |
26 | COPY resources/ /
27 |
28 | VOLUME /yourls
29 |
--------------------------------------------------------------------------------
/alpine-nginx-yourls/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nginx-yourls
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nginx-yourls "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nginx-yourls "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-nginx-yourls/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nodejs-weecloud/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-nodejs:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN \
9 | curl -L https://github.com/eirikb/weecloud/archive/master.tar.gz | tar zx -C /app --strip-components=1 && \
10 | cd /app && npm install
11 |
12 | COPY resources/ /
13 |
14 | EXPOSE 3000/tcp
15 |
--------------------------------------------------------------------------------
/alpine-nodejs-weecloud/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nodejs-weecloud
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nodejs-weecloud "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nodejs-weecloud "Get your own image badge on microbadger.com")
5 |
6 | ## Run
7 | ~~~
8 | docker run -d \
9 | -p 3000:3000 \
10 | combro2k/alpine-nodejs-weecloud:latest
11 | ~~~
12 |
--------------------------------------------------------------------------------
/alpine-nodejs-weecloud/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-nodejs-weecloud/resources/etc/services.d/weecloud/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | cd /app
4 |
5 | exec /usr/bin/node app.js
6 |
--------------------------------------------------------------------------------
/alpine-nodejs/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN \
9 | apk --quiet --no-cache add nodejs nodejs-npm curl tar && mkdir -p /app && \
10 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/*
11 |
--------------------------------------------------------------------------------
/alpine-nodejs/README.md:
--------------------------------------------------------------------------------
1 | # alpine-nodejs
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-nodejs "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-nodejs "Get your own image badge on microbadger.com")
5 |
6 | ## Run
7 | ~~~
8 | docker run -d combro2k/alpine-nodejs:latest
9 | ~~~
10 |
--------------------------------------------------------------------------------
/alpine-nodejs/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-openfire/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN apk --no-cache add curl openjdk8-jre-base tar && \
9 | mkdir /app && curl --location --silent https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4_1_5.tar.gz | tar zx -C /app && \
10 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/*
11 |
12 | COPY resources/ /
13 |
14 | EXPOSE 5222/tcp \
15 | 5223/tcp \
16 | 5229/tcp \
17 | 5262/tcp \
18 | 5263/tcp \
19 | 5269/tcp \
20 | 5275/tcp \
21 | 5276/tcp \
22 | 7070/tcp \
23 | 7443/tcp \
24 | 7777/tcp \
25 | 9090/tcp \
26 | 9091/tcp
27 |
28 | VOLUME /openfire
29 |
--------------------------------------------------------------------------------
/alpine-openfire/README.md:
--------------------------------------------------------------------------------
1 | # alpine-openfire
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-openfire "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-openfire "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-openfire/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-openfire/resources/etc/cont-finish.d/10-persist:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -d /openfire/conf ]; then
4 | mv /app/openfire/conf /openfire/conf
5 | ln -s /openfire/conf /app/openfire/conf
6 | fi
7 |
8 | if [ -d /app/openfire/embedded-db ] && [ ! -d /openfire/embedded-db ]; then
9 | mv /app/openfire/embedded-db /openfire/embedded-db
10 | ln -s /openfire/embedded-db /app/openfire/embedded-db
11 | fi
12 |
13 | if [ ! -d /openfire/resources/security ]; then
14 | mkdir -p /openfire/resources
15 | mv /app/openfire/resources/security /openfire/resources/security
16 | ln -s /openfire/resources/security /app/openfire/resources/security
17 | fi
18 |
19 | if [ ! -d /openfire/plugins ]; then
20 | mv /app/openfire/plugins /openfire/plugins
21 | ln -s /openfire/plugins /app/openfire/plugins
22 | fi
23 |
24 | exit 0
25 |
--------------------------------------------------------------------------------
/alpine-openfire/resources/etc/cont-init.d/10-setup:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ -d /openfire/conf ]; then
4 | if [ ! -L /app/openfire/conf ]; then
5 | rm -fr /app/openfire/conf
6 | ln -s /openfire/conf /app/openfire/conf
7 | fi
8 | fi
9 |
10 | if [ -d /openfire/embedded-db ]; then
11 | if [ ! -L /app/openfire/embedded-db ]; then
12 | rm -fr /app/openfire/embedded-db
13 | ln -s /openfire/embedded-db /app/openfire/embedded-db
14 | fi
15 | fi
16 |
17 | if [ -d /openfire/resources/security ]; then
18 | if [ ! -L /app/openfire/resources/security ]; then
19 | rm -fr /app/openfire/resources/security
20 | ln -s /openfire/resources/security /app/openfire/resources/security
21 | fi
22 | fi
23 |
24 | if [ -d /openfire/plugins ]; then
25 | if [ ! -L /app/openfire/plugins ]; then
26 | rm -fr /app/openfire/plugins
27 | ln -s /openfire/plugins /app/openfire/plugins
28 | fi
29 | fi
30 |
31 | exit 0
32 |
--------------------------------------------------------------------------------
/alpine-openfire/resources/etc/services.d/50-openfire/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /app/openfire/bin/openfire run
4 |
--------------------------------------------------------------------------------
/alpine-posty-api/README.md:
--------------------------------------------------------------------------------
1 | # alpine-posty-api
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-posty-api "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-posty-api "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-posty-api/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-posty-api/resources/data/DELETEME:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/combro2k/dockerfiles/fd191fb79f6b871c7f39d68cec1a4f0ab9b4c521/alpine-posty-api/resources/data/DELETEME
--------------------------------------------------------------------------------
/alpine-posty-api/resources/data/api/app/models/folder.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 | module Folder
3 | MAIL_ROOT_FOLDER = '/var/vmail'.freeze
4 | MAIL_USER = 'vmail'.freeze
5 | MAIL_GROUP = MAIL_USER
6 | STORAGE_CLASS = 'mdbox/storage'.freeze # Possible values "mdbox", "Maildir", "mbox"
7 |
8 | def move_folder
9 | if ENV['RACK_ENV'] == 'production'
10 | if File.directory?(get_folder(name_change.last))
11 | error!('A folder with this name already exists.', 400)
12 | else
13 | FileUtils.mv get_folder(name_change.first), get_folder(name_change.last)
14 | end
15 | end
16 | end
17 |
18 | def remove_folder
19 | FileUtils.rm_rf get_folder if ENV['RACK_ENV'] == 'production'
20 | end
21 |
22 | def change_permissions(folder_array)
23 | current_folder = ''
24 | folder_array.each do |folder|
25 | current_folder += folder + '/'
26 | FileUtils.chown MAIL_USER, MAIL_GROUP, MAIL_ROOT_FOLDER + '/' + current_folder
27 | end
28 | end
29 | end
30 |
--------------------------------------------------------------------------------
/alpine-posty-api/resources/etc/services.d/10_posty/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | cd /data/api
4 |
5 | exec /usr/bin/bundle exec rackup
6 |
--------------------------------------------------------------------------------
/alpine-posty-webui/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN set -xe && apk add --quiet --no-cache --virtual=run-deps ca-certificates curl tar lighttpd lighttpd-mod_auth apache2-utils pwgen && \
9 | mkdir -p /data/webui && curl --location https://github.com/posty/posty_webui/archive/master.tar.gz | tar zx -C /data/webui --strip-components=1 && \
10 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/*
11 |
12 | COPY resources/ /
13 |
14 | VOLUME /data/config
15 |
16 | EXPOSE 80/tcp
17 |
--------------------------------------------------------------------------------
/alpine-posty-webui/README.md:
--------------------------------------------------------------------------------
1 | # alpine-posty-webui
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-posty-webui "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-posty-webui "Get your own image badge on microbadger.com")
5 |
6 | #### Variables to be used:
7 |
8 | POSTY_API_URL=https://www.example.org
9 |
10 | POSTY_API_KEY=yourverysecretkey
11 |
12 |
13 | #### Experimental variables
14 |
15 | AUTH_USER=HTTPBASICUSER
16 |
17 | AUTH_PASSWD=HTTPBASICPASSWORD
18 |
--------------------------------------------------------------------------------
/alpine-posty-webui/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-posty-webui/resources/data/config/DELETEME:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/combro2k/dockerfiles/fd191fb79f6b871c7f39d68cec1a4f0ab9b4c521/alpine-posty-webui/resources/data/config/DELETEME
--------------------------------------------------------------------------------
/alpine-posty-webui/resources/etc/cont-init.d/10-authentication:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ -f /data/config/lighttpd.user ]; then
4 | exit 0
5 | fi
6 |
7 | if [ ! -z $AUTH_USER ]; then
8 | test -z $AUTH_PASSWD && AUTH_PASSWD=`pwgen 12 -y -s -B -1`
9 |
10 | echo "$AUTH_PASSWD" | /usr/bin/htpasswd -i -c /data/config/lighttpd.user "$AUTH_USER"
11 |
12 | echo "Added $AUTH_USER with password $AUTH_PASSWD"
13 | fi
14 |
15 | exit 0
16 |
--------------------------------------------------------------------------------
/alpine-posty-webui/resources/etc/cont-init.d/20-settings:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | test -z "${POSTY_API_URL}" && echo "Can not run without POSTY_API_URL!" && exit 1
4 | test -z "${POSTY_API_KEY}" && echo "Can not run without POSTY_API_KEY!" && exit 1
5 |
6 | cat < /data/webui/dist/settings.json
7 | {
8 | "servers": [
9 | {
10 | "caption": "Server",
11 | "url": "${POSTY_API_URL}",
12 | "key": "${POSTY_API_KEY}"
13 | }
14 | ]
15 | }
16 | EOF
17 |
18 | exit 0
19 |
--------------------------------------------------------------------------------
/alpine-posty-webui/resources/etc/services.d/10_posty/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | cd /data/webui
4 |
5 | test -f /data/config/lighttpd.user && exec /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd-htpasswd.conf -D
6 |
7 | exec /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf -D
8 |
--------------------------------------------------------------------------------
/alpine-prosody/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN apk --no-cache add curl prosody lua5.2-lzlib su-exec openssl && apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/*
9 |
10 | COPY resources/ /
11 |
12 | VOLUME /var/lib/prosody /prosody
13 |
14 | EXPOSE 5222/tcp 5269/tcp 5280/tcp 5281/tcp
15 |
--------------------------------------------------------------------------------
/alpine-prosody/README.md:
--------------------------------------------------------------------------------
1 | # alpine-prosody
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-prosody "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-prosody "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-prosody/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-prosody/resources/etc/cont-init.d/10-openssl:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -d /prosody/ssl ]; then
4 | mkdir -p /prosody/ssl
5 | fi
6 |
7 | if [ ! -f /prosody/ssl/default.crt ]; then
8 | /usr/bin/openssl req -nodes -newkey rsa:4096 -keyout /prosody/ssl/default.key -out /prosody/ssl/default.csr -subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=default"
9 | /usr/bin/openssl x509 -req -days 365 -in /prosody/ssl/default.csr -signkey /prosody/ssl/default.key -out /prosody/ssl/default.crt
10 | fi
11 |
12 | /usr/bin/prosodyctl --root cert import /prosody/ssl
13 |
14 | exit 0
15 |
--------------------------------------------------------------------------------
/alpine-prosody/resources/etc/cont-init.d/20-setup:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | chown prosody:prosody /var/lib/prosody -R
4 |
5 | if [ ! -d /prosody/conf.d ]; then
6 | mkdir /prosody/conf.d
7 | fi
8 |
9 | exit 0
10 |
--------------------------------------------------------------------------------
/alpine-prosody/resources/etc/services.d/50-prosody/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | /sbin/su-exec prosody /usr/bin/prosody
4 |
--------------------------------------------------------------------------------
/alpine-softether/README.md:
--------------------------------------------------------------------------------
1 | # Softether VPN Server Container
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-softether "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-softether "Get your own image badge on microbadger.com")
5 |
6 | This container is heavily tested and don't know yet when its ready.
7 |
--------------------------------------------------------------------------------
/alpine-softether/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-softether/resources/etc/cont-finish.d/00-custom-config:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | # allow to run own scripts inside /data/cont-init.d/
4 | if [ -d /data/cont-finish.d ]; then
5 | chmod +x /data/cont-finish.d/*
6 |
7 | run-parts /data/cont-finish.d
8 | fi
9 |
10 | exit 0
11 |
--------------------------------------------------------------------------------
/alpine-softether/resources/etc/cont-finish.d/10-persist:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ -f /usr/local/libexec/softether/vpnserver/vpn_server.config ]; then
4 | cp /usr/local/libexec/softether/vpnserver/vpn_server.config /data/vpn_server.config
5 | fi
6 |
7 | exit 0
8 |
--------------------------------------------------------------------------------
/alpine-softether/resources/etc/cont-init.d/00-custom-config:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | # allow to run own scripts inside /data/cont-init.d/
4 | if [ -d /data/cont-init.d ]; then
5 | chmod +x /data/cont-init.d/*
6 |
7 | run-parts /data/cont-init.d
8 | fi
9 |
10 | exit 0
11 |
--------------------------------------------------------------------------------
/alpine-softether/resources/etc/cont-init.d/10-persist:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ -f /data/vpn_server.config ]; then
4 | cp /data/vpn_server.config /usr/local/libexec/softether/vpnserver/vpn_server.config
5 | fi
6 |
7 | exit 0
8 |
--------------------------------------------------------------------------------
/alpine-softether/resources/etc/services.d/10-vpnserver/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | LANG=en_US.UTF-8
4 |
5 | exec /usr/local/bin/vpnserver execsvc
6 |
--------------------------------------------------------------------------------
/alpine-spiderfoot/README.md:
--------------------------------------------------------------------------------
1 | # alpine-spiderfoot
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-spiderfoot "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-spiderfoot "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-spiderfoot/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-spiderfoot/resources/etc/cont-finish.d/10-persist:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -L /app/spiderfoot.db ] && [ ! -f /data/spiderfoot.db ]; then
4 | mv /app/spiderfoot.db /data/spiderfoot.db
5 | ln -s /data/spiderfoot.db /app/spiderfoot.db
6 | fi
7 |
--------------------------------------------------------------------------------
/alpine-spiderfoot/resources/etc/cont-init.d/10-persist:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ -f /data/spiderfoot.db ]; then
4 | ln -s /data/spiderfoot.db /app/spiderfoot.db
5 | fi
6 |
--------------------------------------------------------------------------------
/alpine-spiderfoot/resources/etc/fix-attrs.d/data:
--------------------------------------------------------------------------------
1 | /data true spiderfoot 0664 2755
2 | /usr/bin/sfcli false root 0755 2755
3 |
--------------------------------------------------------------------------------
/alpine-spiderfoot/resources/etc/services.d/10-spiderfoot/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | cd /app
4 |
5 | exec /command/s6-setuidgid spiderfoot /usr/bin/python3 /app/sf.py -l 0.0.0.0:5001
6 |
--------------------------------------------------------------------------------
/alpine-spiderfoot/resources/usr/bin/sfcli:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | /sbin/su-exec spiderfoot /usr/bin/python3 /app/sfcli.py "${@}"
4 |
--------------------------------------------------------------------------------
/alpine-teamspeak3/README.md:
--------------------------------------------------------------------------------
1 | # alpine-teamspeak3
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-teamspeak3 "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-teamspeak3 "Get your own image badge on microbadger.com")
5 |
6 | TeamSpeak 3 server running on Alpine with SQLite3 database
7 |
8 | Be sure to read the license before using this container, you can find it in the container at /app/LICENSE
9 |
10 | To start this container use:
11 |
12 | ~~~
13 | docker run -d \
14 | -v /your/own/presistence/path:/teamspeak3 \
15 | -p 9987:9987/udp \
16 | -e TS3SERVER_LICENSE=accept \
17 | -p 30033:30033 \
18 | -p 10011:10011 \
19 | --rm \
20 | combro2k/alpine-teamspeak3:latest
21 | ~~~
22 |
--------------------------------------------------------------------------------
/alpine-teamspeak3/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-teamspeak3/resources/etc/cont-init.d/10-setup:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -f /teamspeak3/ts3server.ini ]; then
4 | touch /teamspeak3/ts3server.ini
5 |
6 | chown teamspeak3:teamspeak3 /teamspeak3/ts3server.ini
7 | fi
8 |
9 | if [ ! -f /teamspeak3/ts3server.sqlitedb ]; then
10 | touch /teamspeak3/ts3server.sqlitedb
11 |
12 | chown teamspeak3:teamspeak3 /teamspeak3/ts3server.sqlitedb
13 | fi
14 |
15 | if [ ! -d /teamspeak3/files ]; then
16 | mkdir /teamspeak3/files
17 |
18 | chown teamspeak3:teamspeak3 /teamspeak3/files
19 | fi
20 |
21 | if [ ! -d /teamspeak3/logs ]; then
22 | mkdir /teamspeak3/logs
23 |
24 | chown teamspeak3:teamspeak3 /teamspeak3/logs
25 | fi
26 |
27 | exit 0
28 |
--------------------------------------------------------------------------------
/alpine-teamspeak3/resources/etc/fix-attrs.d/01-teamspeak3:
--------------------------------------------------------------------------------
1 | /teamspeak3 true teamspeak3 0650 2750
2 | /app true teamspeak3 0750 2750
3 |
--------------------------------------------------------------------------------
/alpine-teamspeak3/resources/etc/services.d/.s6-svscan/finish:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | exit 0
--------------------------------------------------------------------------------
/alpine-teamspeak3/resources/etc/services.d/10_teamspeak3/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /command/s6-setuidgid teamspeak3 /app/ts3server_minimal_runscript.sh inifile=ts3server.ini
4 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/README.md:
--------------------------------------------------------------------------------
1 | # alpine-virtualmail:fuglu
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-virtualmail:fuglu "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-virtualmail:fuglu "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/cont-finish.d/00-custom-config:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | # allow to run own scripts inside /data/cont-init.d/
4 | if [ -d /data/cont-finish.d ]; then
5 | chmod +x /data/cont-finish.d/*
6 |
7 | run-parts /data/cont-finish.d
8 | fi
9 |
10 | exit 0
11 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/cont-init.d/00-custom-config:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | # allow to run own scripts inside /data/cont-init.d/
4 | if [ -d /data/cont-init.d ]; then
5 | chmod +x /data/cont-init.d/*
6 |
7 | run-parts /data/cont-init.d
8 | fi
9 |
10 | exit 0
11 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/cont-init.d/10-clamav:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -d /data/clamav ]; then
4 | mkdir /data/clamav
5 | chown -R clamav:clamav /data/clamav
6 | fi
7 |
8 | if [ ! -d /run/clamav ]; then
9 | mkdir -p /run/clamav
10 | chown -R clamav:clamav /run/clamav
11 | fi
12 |
13 | /usr/bin/freshclam
14 |
15 | exit 0
16 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/cont-init.d/20-prepare-ssl:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -d /data/ssl ]; then
4 | mkdir -p /data/ssl
5 | fi
6 |
7 | if [ ! -f /data/ssl/ssl.pem ] && [ ! -f /data/ssl/ssl.crt ]; then
8 | openssl req -nodes -newkey rsa:4096 -keyout /data/ssl/ssl.key -out /data/ssl/ssl.csr -subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=default"
9 | openssl x509 -req -days 365 -in /data/ssl/ssl.csr -signkey /data/ssl/ssl.key -out /data/ssl/ssl.crt
10 | cat /data/ssl/ssl.crt /data/ssl/ssl.key > /data/ssl/ssl.pem
11 | fi
12 |
13 | if [ ! -f /data/ssl/dh.pem ]; then
14 | # use internet standards dhe pem
15 | /usr/bin/wget https://raw.githubusercontent.com/internetstandards/dhe_groups/master/ffdhe4096.pem --output-document /data/ssl/dh.pem
16 | fi
17 |
18 | exit 0
19 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/cont-init.d/20-spamassassin:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | /usr/bin/sa-update -v
4 |
5 | exit 0
6 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/crontabs/vmail:
--------------------------------------------------------------------------------
1 | 0 8,20 * * * /usr/local/bin/learnSA.sh
2 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/dovecot/conf.d/10-tcpwrapper.conf:
--------------------------------------------------------------------------------
1 | # 10-tcpwrapper.conf
2 | #
3 | # service name for hosts.{allow|deny} are those defined as
4 | # inet_listener in master.conf
5 | #
6 | #login_access_sockets = tcpwrap
7 | #
8 | #service tcpwrap {
9 | # unix_listener login/tcpwrap {
10 | # group = $default_login_user
11 | # mode = 0600
12 | # user = $default_login_user
13 | # }
14 | #}
15 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/dovecot/conf.d/20-lmtp.conf:
--------------------------------------------------------------------------------
1 | ##
2 | ## LMTP specific settings
3 | ##
4 |
5 | # Support proxying to other LMTP/SMTP servers by performing passdb lookups.
6 | #lmtp_proxy = no
7 |
8 | # When recipient address includes the detail (e.g. user+detail), try to save
9 | # the mail to the detail mailbox. See also recipient_delimiter and
10 | # lda_mailbox_autocreate settings.
11 | #lmtp_save_to_detail_mailbox = no
12 |
13 | # Verify quota before replying to RCPT TO. This adds a small overhead.
14 | #lmtp_rcpt_check_quota = no
15 |
16 | # Which recipient address to use for Delivered-To: header and Received:
17 | # header. The default is "final", which is the same as the one given to
18 | # RCPT TO command. "original" uses the address given in RCPT TO's ORCPT
19 | # parameter, "none" uses nothing. Note that "none" is currently always used
20 | # when a mail has multiple recipients.
21 | #lmtp_hdr_delivery_address = final
22 |
23 | protocol lmtp {
24 | # Space separated list of plugins to load (default is global mail_plugins).
25 | mail_plugins = $mail_plugins sieve
26 | }
27 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/dovecot/conf.d/90-acl.conf:
--------------------------------------------------------------------------------
1 | ##
2 | ## Mailbox access control lists.
3 | ##
4 |
5 | # vfile backend reads ACLs from "dovecot-acl" file from mail directory.
6 | # You can also optionally give a global ACL directory path where ACLs are
7 | # applied to all users' mailboxes. The global ACL directory contains
8 | # one file for each mailbox, eg. INBOX or sub.mailbox. cache_secs parameter
9 | # specifies how many seconds to wait between stat()ing dovecot-acl file
10 | # to see if it changed.
11 | plugin {
12 | #acl = vfile:/etc/dovecot/global-acls:cache_secs=300
13 | }
14 |
15 | # To let users LIST mailboxes shared by other users, Dovecot needs a
16 | # shared mailbox dictionary. For example:
17 | plugin {
18 | #acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes
19 | }
20 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/dovecot/conf.d/90-plugin.conf.dist:
--------------------------------------------------------------------------------
1 | ##
2 | ## Plugin settings
3 | ##
4 |
5 | # All wanted plugins must be listed in mail_plugins setting before any of the
6 | # settings take effect. See for list of plugins and
7 | # their configuration. Note that %variable expansion is done for all values.
8 |
9 | plugin {
10 | #setting_name = value
11 | fts_autoindex = yes
12 | imapsieve_url = sieve://{{ .HOSTNAME }}
13 | }
14 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/dovecot/conf.d/99-security.conf:
--------------------------------------------------------------------------------
1 | service imap-hibernate {
2 | unix_listener imap-hibernate {
3 | user = dovecot
4 | group = vmail
5 | mode = 0660
6 | }
7 | }
8 |
9 | service imap {
10 | unix_listener imap-master {
11 | user = dovecot
12 | group = vmail
13 | mode = 0660
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/dovecot/conf.d/auth-master.conf.ext:
--------------------------------------------------------------------------------
1 | # Authentication for master users. Included from 10-auth.conf.
2 |
3 | # By adding master=yes setting inside a passdb you make the passdb a list
4 | # of "master users", who can log in as anyone else.
5 | #
6 |
7 | # Example master user passdb using passwd-file. You can use any passdb though.
8 | passdb {
9 | driver = passwd-file
10 | master = yes
11 | args = /etc/dovecot/master-users
12 |
13 | # Unless you're using PAM, you probably still want the destination user to
14 | # be looked up from passdb that it really exists. pass=yes does that.
15 | pass = yes
16 | }
17 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/dovecot/conf.d/auth-sql.conf.ext:
--------------------------------------------------------------------------------
1 | # Authentication for SQL users. Included from 10-auth.conf.
2 | #
3 | #
4 |
5 | passdb {
6 | driver = sql
7 |
8 | # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
9 | args = /etc/dovecot/dovecot-sql.conf.ext
10 | }
11 |
12 | # "prefetch" user database means that the passdb already provided the
13 | # needed information and there's no need to do a separate userdb lookup.
14 | #
15 | #userdb {
16 | # driver = prefetch
17 | #}
18 |
19 | userdb {
20 | driver = sql
21 | args = /etc/dovecot/dovecot-sql.conf.ext
22 | }
23 |
24 | # If you don't have any user-specific settings, you can avoid the user_query
25 | # by using userdb static instead of userdb sql, for example:
26 | #
27 | #userdb {
28 | #driver = static
29 | #args = uid=vmail gid=vmail home=/var/vmail/%u
30 | #}
31 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/dovecot/dovecot-sql.conf.ext.dist:
--------------------------------------------------------------------------------
1 | # Database driver: mysql, pgsql, sqlite
2 | driver = mysql
3 |
4 | connect = host={{ .MYSQL_PORT_3306_TCP_ADDR }} dbname={{ .POSTFIX_MYSQL_DATABASE }} user={{ .POSTFIX_MYSQL_USER }} password={{ .POSTFIX_MYSQL_PASSWORD }}
5 |
6 | # default_pass_scheme = MD5-CRYPT
7 | default_pass_scheme = SHA512-CRYPT
8 |
9 | password_query = \
10 | SELECT email AS user, \
11 | password, \
12 | 'maildir:/var/vmail/%2d/%Ld/%Ln' AS userdb_home, \
13 | 'maildir:~/Maildir' AS userdb_mail, \
14 | 1000 AS userdb_uid, \
15 | 1000 AS userdb_gid \
16 | FROM users_view WHERE email='%Lu';
17 |
18 | user_query = \
19 | SELECT '/var/vmail/%2d/%Ld/%Ln' AS home, \
20 | 'maildir:~/Maildir' AS mail, \
21 | 1000 AS uid, \
22 | 1000 AS gid \
23 | FROM users_view WHERE email = '%Lu';
24 |
25 | iterate_query = SELECT email AS user FROM users_view
26 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/dovecot/sieve/default.sieve:
--------------------------------------------------------------------------------
1 | require ["include"];
2 |
3 | include :global "spamassassin";
4 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/dovecot/sieve/global/spamassassin.sieve:
--------------------------------------------------------------------------------
1 | require "fileinto";
2 | if header :contains "X-Spam-Flag" "YES" {
3 | fileinto "Spam";
4 | }
5 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/fix-attrs.d/data-clamav:
--------------------------------------------------------------------------------
1 | /data/clamav true clamav 0644 2750
2 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/fix-attrs.d/dovecot-sieve:
--------------------------------------------------------------------------------
1 | /etc/dovecot/sieve true vmail 0644 2750
2 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/fix-attrs.d/usr-local-bin:
--------------------------------------------------------------------------------
1 | /usr/local/bin true root 0755 2755
2 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/fuglu/skipplugins.regex.dist:
--------------------------------------------------------------------------------
1 | ##########
2 | #Headername Regex Plugins to skip, comma separated, only classname
3 | #see http://fumail.github.io/fuglu/plugins-index.html?highlight=suspectfilter#suspect-filters
4 |
5 | #skip SPF and DKIM Verification for outgoing mails
6 | @incomingport ^10099$ SAPlugin,DKIMVerifyPlugin,SPFPlugin
7 |
8 | #skip DKIM Signing for incoming mails
9 | @incomingport ^10025$ DKIMSignPlugin
10 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/fuglu/sql/attachmentrules.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS `attachmentrules` (
2 | `rule_id` int(11) NOT NULL AUTO_INCREMENT,
3 | `action` varchar(10) NOT NULL,
4 | `regex` varchar(255) NOT NULL,
5 | `description` varchar(255) DEFAULT NULL,
6 | `scope` varchar(255) DEFAULT NULL,
7 | `checktype` varchar(20) NOT NULL,
8 | `prio` int(11) NOT NULL,
9 | PRIMARY KEY (`rule_id`)
10 | )
11 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/fuglu/sql/fugluconfig.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS `fugluconfig` (
2 | `scope` varchar(255) NOT NULL,
3 | `section` varchar(255) NOT NULL,
4 | `option` varchar(255) NOT NULL,
5 | `value` varchar(255) NOT NULL,
6 | PRIMARY KEY (`scope`,`section`,`option`)
7 | )
8 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/postfix/header_checks.dist:
--------------------------------------------------------------------------------
1 | # Based on implementation of @JoshData (initially by @mkropat) for Mail-in-a-Box Project
2 | # https://github.com/mail-in-a-box/mailinabox
3 |
4 | # Remove the first line of the Received: header. Note that we cannot fully remove the Received: header
5 | # because OpenDKIM requires that a header be present when signing outbound mail. The first line is
6 | # where the user's home IP address would be.
7 | /^\s*Received:[^\n]*(.*)/ REPLACE Received: from authenticated-user ({{ .HOSTNAME }} [127.0.0.1])$1
8 |
9 | # Remove other typically private information.
10 | /^\s*User-Agent:/ IGNORE
11 | /^\s*X-Enigmail:/ IGNORE
12 | /^\s*X-Mailer:/ IGNORE
13 | /^\s*X-Originating-IP:/ IGNORE
14 | /^\s*X-Pgp-Agent:/ IGNORE
15 |
16 | # The Mime-Version header can leak the user agent too, e.g. in Mime-Version: 1.0 (Mac OS X Mail 8.1 \(2010.6\)).
17 | /^\s*(Mime-Version:\s*[0-9\.]+)\s.+/ REPLACE $1
18 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/postfix/virtual/mysql-virtual-domain-aliases.cf.dist:
--------------------------------------------------------------------------------
1 | user = {{ .POSTFIX_MYSQL_USER }}
2 | password = {{ .POSTFIX_MYSQL_PASSWORD }}
3 | hosts = {{ .MYSQL_PORT_3306_TCP_ADDR }}:{{ .MYSQL_PORT_3306_TCP_PORT }}
4 | dbname = {{ .POSTFIX_MYSQL_DATABASE }}
5 | query = SELECT destination FROM domain_aliases_view WHERE source='%s'
6 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/postfix/virtual/mysql-virtual-mailbox-domains.cf.dist:
--------------------------------------------------------------------------------
1 | user = {{ .POSTFIX_MYSQL_USER }}
2 | password = {{ .POSTFIX_MYSQL_PASSWORD }}
3 | hosts = {{ .MYSQL_PORT_3306_TCP_ADDR }}:{{ .MYSQL_PORT_3306_TCP_PORT }}
4 | dbname = {{ .POSTFIX_MYSQL_DATABASE }}
5 | query = SELECT "lmtp:unix:private/dovecot-lmtp" FROM virtual_domains WHERE virtual_domains.name='%s'
6 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/postfix/virtual/mysql-virtual-mailbox-maps.cf.dist:
--------------------------------------------------------------------------------
1 | user = {{ .POSTFIX_MYSQL_USER }}
2 | password = {{ .POSTFIX_MYSQL_PASSWORD }}
3 | hosts = {{ .MYSQL_PORT_3306_TCP_ADDR }}:{{ .MYSQL_PORT_3306_TCP_PORT }}
4 | dbname = {{ .POSTFIX_MYSQL_DATABASE }}
5 | query = SELECT email FROM users_view WHERE email='%s'
6 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/postfix/virtual/mysql-virtual-transports.cf.dist:
--------------------------------------------------------------------------------
1 | user = {{ .POSTFIX_MYSQL_USER }}
2 | password = {{ .POSTFIX_MYSQL_PASSWORD }}
3 | hosts = {{ .MYSQL_PORT_3306_TCP_ADDR }}:{{ .MYSQL_PORT_3306_TCP_PORT }}
4 | dbname = {{ .POSTFIX_MYSQL_DATABASE }}
5 | query = SELECT destination FROM virtual_transports WHERE name='%s'
6 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/postfix/virtual/mysql-virtual-user-aliases.cf.dist:
--------------------------------------------------------------------------------
1 | user = {{ .POSTFIX_MYSQL_USER }}
2 | password = {{ .POSTFIX_MYSQL_PASSWORD }}
3 | hosts = {{ .MYSQL_PORT_3306_TCP_ADDR }}:{{ .MYSQL_PORT_3306_TCP_PORT }}
4 | dbname = {{ .POSTFIX_MYSQL_DATABASE }}
5 | query = SELECT destination FROM user_aliases_view WHERE source='%s'
6 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/services.d/05_crond/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 |
3 | exec /usr/sbin/crond -f -S
4 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/services.d/10_clamd/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 |
3 | exec /usr/sbin/clamd
4 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/services.d/10_dovecot/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 |
3 | exec /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf -F
4 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/services.d/20_spamd/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 |
3 | exec /usr/sbin/spamd --username vmail --groupname vmail --create-prefs --max-children 5 --helper-home-dir --allow-tell --syslog=stderr
4 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/services.d/50_fuglu/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /usr/bin/fuglu --foreground --config /data/fuglu/fuglu.conf --baseloglevel=INFO
4 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/etc/services.d/60_postfix/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 |
3 | exec /usr/sbin/postfix start-fg
4 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/usr/local/bin/learnSA.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | echo "=== SpamAssassin: Learning from SPAM ==="
4 | find /var/vmail/ -type d -iname '.Spam' -exec /usr/local/bin/sa-learn --no-sync --spam {} \;
5 | echo ""
6 |
7 | echo "=== SpamAssassin: Learning from HAM ==="
8 | find /var/vmail/ -type d -iname '.Ham' -exec /usr/local/bin/sa-learn --no-sync --ham {} \;
9 | echo ""
10 |
11 | echo "=== SpamAssassin: Sync Bayesian"
12 | /usr/local/bin/sa-learn --sync
13 |
14 | echo "=== SpamAssassin: Bayesian Statistics"
15 | /usr/local/bin/sa-learn --dump magic
16 |
--------------------------------------------------------------------------------
/alpine-virtualmail-fuglu/resources/usr/local/bin/sa-learn:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | if [[ "$USER" != "vmail" ]]; then
4 | echo "Execute as vmail user: /usr/bin/sa-learn $@"
5 | exec /sbin/su-exec vmail /usr/bin/sa-learn "$@"
6 | fi
7 |
8 | exec /usr/bin/sa-learn "$@"
9 |
--------------------------------------------------------------------------------
/alpine-virtualmail/README.md:
--------------------------------------------------------------------------------
1 | # alpine-virtualmail
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-virtualmail "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-virtualmail "Get your own image badge on microbadger.com")
5 |
--------------------------------------------------------------------------------
/alpine-virtualmail/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/cont-finish.d/00-custom-config:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | # allow to run own scripts inside /data/cont-init.d/
4 | if [ -d /data/cont-finish.d ]; then
5 | chmod +x /data/cont-finish.d/*
6 |
7 | run-parts /data/cont-finish.d
8 | fi
9 |
10 | exit 0
11 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/cont-finish.d/10-persist:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -L /usr/share/assp/assp.cfg ]; then
4 | mv /usr/share/assp/assp.cfg /data/assp/assp.cfg
5 | ln -s /data/assp/assp.cfg /usr/share/assp/assp.cfg
6 | fi
7 |
8 | exit 0
9 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/cont-init.d/00-custom-config:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | # allow to run own scripts inside /data/cont-init.d/
4 | if [ -d /data/cont-init.d ]; then
5 | chmod +x /data/cont-init.d/*
6 |
7 | run-parts /data/cont-init.d
8 | fi
9 |
10 | exit 0
11 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/cont-init.d/20-prepare-ssl:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -d /data/ssl ]; then
4 | mkdir -p /data/ssl
5 | fi
6 |
7 | if [ ! -f /data/ssl/ssl.pem ] && [ ! -f /data/ssl/ssl.crt ]; then
8 | /usr/bin/openssl req -nodes -newkey rsa:4096 -keyout /data/ssl/ssl.key -out /data/ssl/ssl.csr -subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=default"
9 | /usr/bin/openssl x509 -req -days 365 -in /data/ssl/ssl.csr -signkey /data/ssl/ssl.key -out /data/ssl/ssl.crt
10 | cat /data/ssl/ssl.crt /data/ssl/ssl.key > /data/ssl/ssl.pem
11 | fi
12 |
13 | if [ ! -f /data/ssl/dh.pem ]; then
14 | /usr/bin/openssl dhparam -out /data/ssl/dh.pem 2048
15 | fi
16 |
17 | exit 0
18 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/cont-init.d/40-freshclam:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -d /data/clamav ]; then
4 | mkdir /data/clamav
5 | chown -R clamav:clamav /data/clamav
6 | fi
7 |
8 | /usr/bin/freshclam
9 |
10 | exit 0
11 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/dovecot/conf.d/10-tcpwrapper.conf:
--------------------------------------------------------------------------------
1 | # 10-tcpwrapper.conf
2 | #
3 | # service name for hosts.{allow|deny} are those defined as
4 | # inet_listener in master.conf
5 | #
6 | #login_access_sockets = tcpwrap
7 | #
8 | #service tcpwrap {
9 | # unix_listener login/tcpwrap {
10 | # group = $default_login_user
11 | # mode = 0600
12 | # user = $default_login_user
13 | # }
14 | #}
15 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/dovecot/conf.d/20-lmtp.conf:
--------------------------------------------------------------------------------
1 | ##
2 | ## LMTP specific settings
3 | ##
4 |
5 | # Support proxying to other LMTP/SMTP servers by performing passdb lookups.
6 | #lmtp_proxy = no
7 |
8 | # When recipient address includes the detail (e.g. user+detail), try to save
9 | # the mail to the detail mailbox. See also recipient_delimiter and
10 | # lda_mailbox_autocreate settings.
11 | #lmtp_save_to_detail_mailbox = no
12 |
13 | # Verify quota before replying to RCPT TO. This adds a small overhead.
14 | #lmtp_rcpt_check_quota = no
15 |
16 | # Which recipient address to use for Delivered-To: header and Received:
17 | # header. The default is "final", which is the same as the one given to
18 | # RCPT TO command. "original" uses the address given in RCPT TO's ORCPT
19 | # parameter, "none" uses nothing. Note that "none" is currently always used
20 | # when a mail has multiple recipients.
21 | #lmtp_hdr_delivery_address = final
22 |
23 | protocol lmtp {
24 | # Space separated list of plugins to load (default is global mail_plugins).
25 | mail_plugins = $mail_plugins sieve
26 | }
27 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/dovecot/conf.d/90-acl.conf:
--------------------------------------------------------------------------------
1 | ##
2 | ## Mailbox access control lists.
3 | ##
4 |
5 | # vfile backend reads ACLs from "dovecot-acl" file from mail directory.
6 | # You can also optionally give a global ACL directory path where ACLs are
7 | # applied to all users' mailboxes. The global ACL directory contains
8 | # one file for each mailbox, eg. INBOX or sub.mailbox. cache_secs parameter
9 | # specifies how many seconds to wait between stat()ing dovecot-acl file
10 | # to see if it changed.
11 | plugin {
12 | #acl = vfile:/etc/dovecot/global-acls:cache_secs=300
13 | }
14 |
15 | # To let users LIST mailboxes shared by other users, Dovecot needs a
16 | # shared mailbox dictionary. For example:
17 | plugin {
18 | #acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes
19 | }
20 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/dovecot/conf.d/90-plugin.conf:
--------------------------------------------------------------------------------
1 | ##
2 | ## Plugin settings
3 | ##
4 |
5 | # All wanted plugins must be listed in mail_plugins setting before any of the
6 | # settings take effect. See for list of plugins and
7 | # their configuration. Note that %variable expansion is done for all values.
8 |
9 | plugin {
10 | #setting_name = value
11 | fts_autoindex = yes
12 | }
13 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/dovecot/conf.d/99-security.conf:
--------------------------------------------------------------------------------
1 | service imap-hibernate {
2 | unix_listener imap-hibernate {
3 | user = dovecot
4 | group = vmail
5 | mode = 0660
6 | }
7 | }
8 |
9 | service imap {
10 | unix_listener imap-master {
11 | user = dovecot
12 | group = vmail
13 | mode = 0660
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/dovecot/conf.d/auth-master.conf.ext:
--------------------------------------------------------------------------------
1 | # Authentication for master users. Included from 10-auth.conf.
2 |
3 | # By adding master=yes setting inside a passdb you make the passdb a list
4 | # of "master users", who can log in as anyone else.
5 | #
6 |
7 | # Example master user passdb using passwd-file. You can use any passdb though.
8 | passdb {
9 | driver = passwd-file
10 | master = yes
11 | args = /etc/dovecot/master-users
12 |
13 | # Unless you're using PAM, you probably still want the destination user to
14 | # be looked up from passdb that it really exists. pass=yes does that.
15 | pass = yes
16 | }
17 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/dovecot/conf.d/auth-sql.conf.ext:
--------------------------------------------------------------------------------
1 | # Authentication for SQL users. Included from 10-auth.conf.
2 | #
3 | #
4 |
5 | passdb {
6 | driver = sql
7 |
8 | # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
9 | args = /etc/dovecot/dovecot-sql.conf.ext
10 | }
11 |
12 | # "prefetch" user database means that the passdb already provided the
13 | # needed information and there's no need to do a separate userdb lookup.
14 | #
15 | #userdb {
16 | # driver = prefetch
17 | #}
18 |
19 | userdb {
20 | driver = sql
21 | args = /etc/dovecot/dovecot-sql.conf.ext
22 | }
23 |
24 | # If you don't have any user-specific settings, you can avoid the user_query
25 | # by using userdb static instead of userdb sql, for example:
26 | #
27 | #userdb {
28 | #driver = static
29 | #args = uid=vmail gid=vmail home=/var/vmail/%u
30 | #}
31 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/dovecot/dovecot-sql.conf.ext:
--------------------------------------------------------------------------------
1 | # Database driver: mysql, pgsql, sqlite
2 | driver = mysql
3 |
4 | connect = host=__REPLACE_DATABASE_HOST__ dbname=__REPLACE_DATABASE_NAME__ user=__REPLACE_DATABASE_USER__ password=__REPLACE_DATABASE_PASSWORD__
5 |
6 | # default_pass_scheme = MD5-CRYPT
7 | default_pass_scheme = SHA512-CRYPT
8 |
9 | password_query = \
10 | SELECT email AS user, \
11 | password, \
12 | 'maildir:/var/vmail/%2d/%Ld/%Ln' AS userdb_home, \
13 | 'maildir:~/Maildir' AS userdb_mail, \
14 | 1000 AS userdb_uid, \
15 | 1000 AS userdb_gid \
16 | FROM users_view WHERE email='%Lu';
17 |
18 | user_query = \
19 | SELECT '/var/vmail/%2d/%Ld/%Ln' AS home, \
20 | 'maildir:~/Maildir' AS mail, \
21 | 1000 AS uid, \
22 | 1000 AS gid \
23 | FROM users_view WHERE email = '%Lu';
24 |
25 | iterate_query = SELECT email AS user FROM users_view
26 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/dovecot/sieve/default.sieve:
--------------------------------------------------------------------------------
1 | require ["include"];
2 |
3 | include :global "assp";
4 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/dovecot/sieve/global/assp.sieve:
--------------------------------------------------------------------------------
1 | # Include special functions
2 | require ["relational", "comparator-i;ascii-numeric", "fileinto"];
3 |
4 | # AntiSpam measure filtering
5 | if anyof (
6 | header :value "ge" :comparator "i;ascii-numeric" "X-Assp-Message-Totalscore" "10",
7 | header :is ["X-Spam-Status"] "yes",
8 | header :contains ["X-Assp-Spam-Level"] "****"
9 | )
10 | {
11 | fileinto "ASSP.Spam";
12 | stop;
13 | }
14 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/fix-attrs.d/data-assp:
--------------------------------------------------------------------------------
1 | /data/assp true assp 0664 2755
2 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/fix-attrs.d/data-clamav:
--------------------------------------------------------------------------------
1 | /data/clamav true clamav 0644 2750
2 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/fix-attrs.d/dovecot-sieve:
--------------------------------------------------------------------------------
1 | /etc/dovecot/sieve true vmail 0644 2750
2 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/postfix/virtual/mysql-virtual-domain-aliases.cf:
--------------------------------------------------------------------------------
1 | user = __REPLACE_DATABASE_USER__
2 | password = __REPLACE_DATABASE_PASSWORD__
3 | hosts = __REPLACE_DATABASE_HOST__:__REPLACE_DATABASE_PORT__
4 | dbname = __REPLACE_DATABASE_NAME__
5 | query = SELECT destination FROM domain_aliases_view WHERE source='%s'
6 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/postfix/virtual/mysql-virtual-mailbox-domains.cf:
--------------------------------------------------------------------------------
1 | user = __REPLACE_DATABASE_USER__
2 | password = __REPLACE_DATABASE_PASSWORD__
3 | hosts = __REPLACE_DATABASE_HOST__:__REPLACE_DATABASE_PORT__
4 | dbname = __REPLACE_DATABASE_NAME__
5 | query = SELECT "lmtp:unix:private/dovecot-lmtp" FROM virtual_domains WHERE virtual_domains.name='%s'
6 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/postfix/virtual/mysql-virtual-mailbox-maps.cf:
--------------------------------------------------------------------------------
1 | user = __REPLACE_DATABASE_USER__
2 | password = __REPLACE_DATABASE_PASSWORD__
3 | hosts = __REPLACE_DATABASE_HOST__:__REPLACE_DATABASE_PORT__
4 | dbname = __REPLACE_DATABASE_NAME__
5 | query = SELECT email FROM users_view WHERE email='%s'
6 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/postfix/virtual/mysql-virtual-transports.cf:
--------------------------------------------------------------------------------
1 | user = __REPLACE_DATABASE_USER__
2 | password = __REPLACE_DATABASE_PASSWORD__
3 | hosts = __REPLACE_DATABASE_HOST__:__REPLACE_DATABASE_PORT__
4 | dbname = __REPLACE_DATABASE_NAME__
5 | query = SELECT destination FROM virtual_transports WHERE name='%s'
6 |
7 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/postfix/virtual/mysql-virtual-user-aliases.cf:
--------------------------------------------------------------------------------
1 | user = __REPLACE_DATABASE_USER__
2 | password = __REPLACE_DATABASE_PASSWORD__
3 | hosts = __REPLACE_DATABASE_HOST__:__REPLACE_DATABASE_PORT__
4 | dbname = __REPLACE_DATABASE_NAME__
5 | query = SELECT destination FROM user_aliases_view WHERE source='%s'
6 |
7 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/services.d/00_syslog/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 |
3 | exec /sbin/syslogd -n -S -O -
4 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/services.d/05_crond/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 |
3 | exec /usr/sbin/crond -f -S
4 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/services.d/10_dovecot/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 |
3 | exec /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf -F
4 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/services.d/20_postfix/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 |
3 | exec /usr/sbin/postfix start-fg
4 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/services.d/25_clamd/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 |
3 | exec /usr/sbin/clamd
4 |
--------------------------------------------------------------------------------
/alpine-virtualmail/resources/etc/services.d/30_assp/run:
--------------------------------------------------------------------------------
1 | #!/command/execlineb -P
2 |
3 | cd /usr/share/assp/
4 |
5 | exec /usr/bin/perl assp.pl
6 |
--------------------------------------------------------------------------------
/alpine-weechat/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM combro2k/alpine-base:latest
2 |
3 | LABEL org.label-schema.build-date=$BUILD_DATE \
4 | org.label-schema.vcs-ref=$VCS_REF \
5 | org.label-schema.vcs-url=$VCS_URL \
6 | org.label-scheme.dockerfile=$DOCKERFILE
7 |
8 | RUN \
9 | apk --quiet --no-cache add weechat weechat-aspell weechat-python weechat-perl weechat-lua python3 lua5.1 weechat-ruby \
10 | ruby tmux dropbear bash libressl tor su-exec py3-websocket-client py3-six && \
11 | mkdir -p /data /data/weechat /data/dropbear /data/ssh && ln -s /data/dropbear /etc/dropbear && \
12 | adduser -s /bin/bash -D -u 1000 -h /home/weechat weechat && \
13 | echo -e 'set -g set-titles on\nset -g set-titles-string "#T"' > /home/weechat/.tmux.conf && \
14 | ln -s /data/weechat /home/weechat/.weechat && ln -s /data/ssh /home/weechat/.ssh && \
15 | chown weechat:weechat /home/weechat -R && \
16 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/*
17 |
18 | COPY resources/ /
19 |
20 | VOLUME /data
21 |
22 | EXPOSE 22/tcp
23 |
--------------------------------------------------------------------------------
/alpine-weechat/README.md:
--------------------------------------------------------------------------------
1 | # alpine-weechat
2 |
3 | [](https://microbadger.com/images/combro2k/alpine-weechat "Get your own version badge on microbadger.com")
4 | [](https://microbadger.com/images/combro2k/alpine-weechat "Get your own image badge on microbadger.com")
5 |
6 | ## Run (example with relay port 9001)
7 | ~~~
8 | docker run -d \
9 | -p 9001:9001 \
10 | -p 5000:22 \
11 | combro2k/alpine-weechat:latest
12 | ~~~
13 |
--------------------------------------------------------------------------------
/alpine-weechat/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/alpine-weechat/resources/etc/cont-init.d/10-persist-weechat:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -d /data/weechat ]; then
4 | mkdir -p /data/weechat
5 | chown weechat:weechat /data/weechat
6 | ln -s /data/weechat /home/weechat/.weechat
7 | fi
8 |
9 | if [ ! -d /data/ssh ]; then
10 | mkdir -p /data/ssh
11 | touch /data/ssh/authorized_keys
12 | chmod 700 /data/ssh
13 | chmod 640 /data/ssh/authorized_keys
14 | chown weechat:weechat /data/ssh -R
15 | fi
16 |
17 | exit 0
18 |
--------------------------------------------------------------------------------
/alpine-weechat/resources/etc/cont-init.d/99-dropbear:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | if [ ! -d /data/dropbear/ ]; then
4 | mkdir /data/dropbear
5 |
6 | dropbearkey -t dss -f /data/dropbear/dropbear_dss_host_key
7 | dropbearkey -t rsa -f /data/dropbear/dropbear_rsa_host_key
8 | dropbearkey -t ecdsa -f /data/dropbear/dropbear_ecdsa_host_key
9 | fi
10 |
11 | exit 0
12 |
--------------------------------------------------------------------------------
/alpine-weechat/resources/etc/fix-attrs.d/20-weechat-data:
--------------------------------------------------------------------------------
1 | /data/weechat true weechat 0750 0750
2 | /data/ssh true weechat 0644 0700
3 |
--------------------------------------------------------------------------------
/alpine-weechat/resources/etc/profile.d/tmux.sh:
--------------------------------------------------------------------------------
1 | if test $TMUX; then
2 | LC_ALL=c exec /usr/bin/weechat
3 | elif tmux has-session -t WeeChat 2>/dev/null; then
4 | tmux attach -t WeeChat
5 | exit
6 | else
7 | tmux new -s WeeChat
8 | exit
9 | fi
10 |
--------------------------------------------------------------------------------
/alpine-weechat/resources/etc/services.d/10-dropbear/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | exec /usr/sbin/dropbear -wsjkBFER
4 |
--------------------------------------------------------------------------------
/alpine-weechat/resources/etc/services.d/20-tor/run:
--------------------------------------------------------------------------------
1 | #!/command/with-contenv sh
2 |
3 | /sbin/su-exec weechat /usr/bin/tor
4 |
--------------------------------------------------------------------------------
/alpine-weechat/resources/etc/tmux.conf:
--------------------------------------------------------------------------------
1 | # Disable status bar
2 | set -g status off
3 |
4 | # Set default CTRL + A prefix instead of CTRL + B
5 | unbind C-b
6 | set -g prefix C-a
7 | bind C-a send-prefix
8 |
--------------------------------------------------------------------------------
/alpine-weechat/resources/etc/tor/torrc:
--------------------------------------------------------------------------------
1 | SOCKSPort 127.0.0.1:9050
2 |
--------------------------------------------------------------------------------
/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # $IMAGE_NAME var is injected into the build so the tag is correct.
4 |
5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))"
6 |
7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
8 | DOCKERFILE="${BASEDIR}/Dockerfile"
9 |
10 | VCS_REF="$(git rev-parse --short HEAD)"
11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}"
12 |
13 | echo "Build hook running"
14 |
15 | set -x
16 |
17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \
18 | --build-arg VCS_REF="${VCS_REF}" \
19 | --build-arg VCS_URL="${VCS_URL}" \
20 | --build-arg DOCKERFILE="${DOCKERFILE}" \
21 | --compress \
22 | -t ${IMAGE_NAME} .
23 |
--------------------------------------------------------------------------------
/update_s6_overlay.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -e
4 | #set -x
5 |
6 | BASE=$(readlink -f $(dirname $0))
7 | VERSION=$1
8 |
9 | if [ -z ${VERSION} ]; then
10 | echo "Please run with version number! Ex. ${0} 1.21.2.2"
11 | exit 1
12 | fi
13 |
14 | cd ${BASE}
15 |
16 | for file in */Dockerfile; do
17 | DIR=$(dirname ${file})
18 | IMAGE=$(basename ${DIR})
19 |
20 | sed -i "s#^\(ARG S6_OVERLAY_VERSION\)=[^$]*#\1=${VERSION}#g" ${file}
21 | done
22 |
--------------------------------------------------------------------------------