archive
commit
8f5d1c4ec5
|
|
@ -0,0 +1,3 @@
|
|||
#! /bin/bash
|
||||
|
||||
docker compose up
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
version: '3'
|
||||
services:
|
||||
db:
|
||||
image: mariadb:10
|
||||
volumes:
|
||||
- ./db:/var/lib/mysql
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=root_password
|
||||
- MYSQL_DATABASE=cypht
|
||||
- MYSQL_USER=cypht
|
||||
- MYSQL_PASSWORD=cypht_password
|
||||
cypht:
|
||||
image: sailfrog/cypht-docker:latest
|
||||
volumes:
|
||||
- ./cypht/users:/var/lib/hm3/users
|
||||
ports:
|
||||
- "8344:80"
|
||||
environment:
|
||||
- CYPHT_AUTH_USERNAME=admin
|
||||
- CYPHT_AUTH_PASSWORD=admin_password
|
||||
- CYPHT_DB_CONNECTION_TYPE=host
|
||||
- CYPHT_DB_HOST=db
|
||||
- CYPHT_DB_NAME=cypht
|
||||
- CYPHT_DB_USER=cypht
|
||||
- CYPHT_DB_PASS=cypht_password
|
||||
- CYPHT_SESSION_TYPE=DB
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
doesnt work with gmail and quite slow
|
||||
|
||||
does work with app passwords, slow because of additional are-you-sure, does techinally hit all marks with 0 frill
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
FROM php:7.1.26-alpine3.9
|
||||
|
||||
RUN apk add --no-cache \
|
||||
bash \
|
||||
ca-certificates \
|
||||
curl \
|
||||
fcron \
|
||||
gcc \
|
||||
libpng \
|
||||
libpng-dev \
|
||||
openssl \
|
||||
php-bcmath \
|
||||
php-curl \
|
||||
php-fpm \
|
||||
php-gd \
|
||||
php-intl \
|
||||
php-mbstring \
|
||||
php-xml \
|
||||
php-zip \
|
||||
php7-gd \
|
||||
php7-mbstring \
|
||||
php7-pdo \
|
||||
php7-pdo_sqlite \
|
||||
php7-pgsql \
|
||||
php7-pdo_pgsql \
|
||||
postgresql \
|
||||
postgresql-contrib \
|
||||
postgresql-dev \
|
||||
rsync \
|
||||
sqlite \
|
||||
sqlite-dev \
|
||||
sudo \
|
||||
tzdata \
|
||||
wget
|
||||
|
||||
RUN docker-php-ext-install \
|
||||
gd \
|
||||
pdo \
|
||||
pdo_pgsql \
|
||||
pdo_sqlite
|
||||
|
||||
RUN apk del \
|
||||
libpng-dev \
|
||||
postgresql-dev \
|
||||
sqlite-dev
|
||||
|
||||
CMD []
|
||||
ENTRYPOINT ["bash", "/mnt/entrypoint.sh"]
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
#! /bin/bash
|
||||
|
||||
set -e
|
||||
set -u
|
||||
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||
name="$(basename "$(pwd)")"
|
||||
dir="$(pwd)"
|
||||
|
||||
pushd $GOPATH/src/local/rproxy3
|
||||
CGO_ENABLED=0 GOOS=linux go build -o "$dir/mnt/proxy" -a -installsuffix cgo
|
||||
popd
|
||||
|
||||
#img="php"
|
||||
#tag="7.1.26-alpine3.9"
|
||||
#docker pull $img:$tag
|
||||
docker build -t $name:latest .
|
||||
|
||||
mkdir -p ./mnt
|
||||
cp ./entrypoint.sh ./mnt/
|
||||
|
||||
docker run --rm -it \
|
||||
--entrypoint sh \
|
||||
--name $name \
|
||||
-p 8346:8081 \
|
||||
-v $(pwd)/mnt:/mnt \
|
||||
$name:latest \
|
||||
/mnt/entrypoint.sh \
|
||||
-p 8081 -burst 100 -crt /mnt/server.crt -key /mnt/server.key -r localhost:http://localhost:8080 -rate 100 -timeout 30 \
|
||||
"$@"
|
||||
|
|
@ -0,0 +1,88 @@
|
|||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
set -u
|
||||
|
||||
function install_composer() {
|
||||
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
||||
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
|
||||
php composer-setup.php --install-dir=bin --filename=composer
|
||||
php -r "unlink('composer-setup.php');"
|
||||
}
|
||||
|
||||
function install() {
|
||||
install_composer
|
||||
mkdir /tmp/cypht-temp
|
||||
cd /tmp/cypht-temp
|
||||
wget https://github.com/jasonmunro/cypht/archive/master.zip
|
||||
unzip master.zip
|
||||
cd cypht-master && composer install && cd ..
|
||||
cp cypht-master/hm3.sample.ini cypht-master/hm3.ini
|
||||
find cypht-master -type d -print | xargs chmod 755
|
||||
find cypht-master -type f -print | xargs chmod 644
|
||||
mv cypht-master/* $1
|
||||
cd $1
|
||||
rm -rf /tmp/cypht-temp
|
||||
}
|
||||
|
||||
function config_user_gen() {
|
||||
php ./scripts/config_gen.php
|
||||
php ./scripts/create_account.php admin admin
|
||||
}
|
||||
|
||||
function run_auth_sqlite() {
|
||||
echo "CREATE TABLE hm_user_session (hm_id varchar(180), data longblob, date timestamp, primary key (hm_id));" \
|
||||
| sqlite3 /mnt/test.db || true
|
||||
echo "CREATE TABLE hm_user (username varchar(250), hash varchar(250), primary key (username));" \
|
||||
| sqlite3 /mnt/test.db || true
|
||||
echo "CREATE TABLE hm_user_settings(username varchar(250), settings longblob, primary key (username));" \
|
||||
| sqlite3 /mnt/test.db || true
|
||||
}
|
||||
|
||||
function run_auth_pgsql() {
|
||||
echo '127.0.0.1 localhost' >> /etc/hosts
|
||||
mkdir -p /run/postgresql
|
||||
chmod -R 777 /run/postgresql
|
||||
if [ ! -d /mnt/postgresql/data ]; then
|
||||
sudo -u postgres bash -c '
|
||||
mkdir -p /mnt/postgresql/data &&
|
||||
chmod 0700 /mnt/postgresql/data &&
|
||||
initdb /mnt/postgresql/data &&
|
||||
echo "host all all 0.0.0.0/8 md5" >> /mnt/postgresql/data/pg_hba.conf &&
|
||||
echo "listen_addresses='"'"'*'"'"'" >> /mnt/postgresql/data/postgresql.conf &&
|
||||
pg_ctl -D /mnt/postgresql/data start &&
|
||||
psql postgresql://localhost:5432 \
|
||||
--command "CREATE DATABASE test WITH ENCODING UTF8 TEMPLATE=template0;" &&
|
||||
psql postgresql://localhost:5432/test \
|
||||
--command "CREATE USER bel WITH SUPERUSER PASSWORD '"'"'pwd'"'"';" &&
|
||||
psql postgresql://bel:pwd@localhost:5432/test \
|
||||
--command "GRANT ALL PRIVILEGES ON DATABASE test TO bel;" &&
|
||||
psql postgresql://bel:pwd@localhost:5432/test \
|
||||
--command "CREATE TABLE hm_user_session (hm_id varchar(250) primary key not null, data text, date timestamp);" &&
|
||||
psql postgresql://bel:pwd@localhost:5432/test \
|
||||
--command "CREATE TABLE hm_user (username varchar(255) primary key not null, hash varchar(255));" &&
|
||||
psql postgresql://bel:pwd@localhost:5432/test \
|
||||
--command "CREATE TABLE hm_user_settings (username varchar(250) primary key not null, settings text);"
|
||||
'
|
||||
else
|
||||
sudo -u postgres bash -c 'pg_ctl -D /mnt/postgresql/data start'
|
||||
fi
|
||||
}
|
||||
|
||||
DESTINATION="/mnt/cypht"
|
||||
if [ ! -d $DESTINATION ]; then
|
||||
mkdir -p $DESTINATION
|
||||
install $DESTINATION
|
||||
fi
|
||||
cd $DESTINATION
|
||||
run_auth_pgsql
|
||||
#run_auth_sqlite
|
||||
config_user_gen
|
||||
mkdir -p /var/lib/hm3
|
||||
mkdir -p /var/lib/hm3/attachments
|
||||
mkdir -p /var/lib/hm3/users
|
||||
mkdir -p /var/lib/hm3/app_data
|
||||
ln -s /mnt/cypht/site /var/www/html/mail
|
||||
php -S 0.0.0.0:8080 &
|
||||
/mnt/proxy "$@"
|
||||
exit $?
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
DOMAIN=localhost
|
||||
USER=admin
|
||||
PASS=pass123
|
||||
DB_PASS=pass123
|
||||
DB_USER=cypht
|
||||
DB=cypht
|
||||
ROOT_PASS=pass123
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
version: "3"
|
||||
|
||||
services:
|
||||
cypht_app:
|
||||
container_name: cypht_app
|
||||
image: sailfrog/cypht-docker:latest
|
||||
ports:
|
||||
- 3308:80
|
||||
environment:
|
||||
- DOMAIN=localhost
|
||||
- USER=admin
|
||||
- PASS=pass123
|
||||
- DB_PASS=pass123
|
||||
- DB_USER=cypht
|
||||
- DB=cypht
|
||||
- ROOT_PASS=pass123
|
||||
- CYPHT_AUTH_USERNAME=${USER}
|
||||
- CYPHT_AUTH_PASSWORD=${PASS}
|
||||
- CYPHT_DB_CONNECTION_TYPE=host
|
||||
- CYPHT_DB_HOST=cypht_db:3306
|
||||
- CYPHT_DB_NAME=${DB}
|
||||
- CYPHT_DB_USER=${DB_USER}
|
||||
- CYPHT_DB_PASS=${DB_PASS}
|
||||
- CYPHT_ALLOW_EXTERNAL_IMAGE_SOURCES=true
|
||||
- CYPHT_MODULE_NASA=enable
|
||||
- CYPHT_DISABLE_IP_CHECK=true
|
||||
- CYPHT_MODULE_2FA=enable
|
||||
volumes:
|
||||
- ${PWD}/users:/var/lib/hm3/users
|
||||
- ${PWD}/app_data:/var/lib/hm3/app_data
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.frontend.rule=Host:mail.${DOMAIN}"
|
||||
depends_on:
|
||||
- cypht_db
|
||||
cypht_db:
|
||||
container_name: cypht_db
|
||||
image: mariadb:10
|
||||
ports:
|
||||
- 3307:3306
|
||||
environment:
|
||||
- DOMAIN=localhost
|
||||
- USER=admin
|
||||
- PASS=pass123
|
||||
- DB_PASS=pass123
|
||||
- DB_USER=cypht
|
||||
- DB=cypht
|
||||
- MYSQL_ROOT_PASSWORD=${ROOT_PASS}
|
||||
- MYSQL_DATABASE=${DB}
|
||||
- MYSQL_USER=${DB_USER}
|
||||
- MYSQL_PASSWORD=${DB_PASS}
|
||||
volumes:
|
||||
- ${PWD}/mysql:/var/lib/mysql
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
FROM php:5-apache
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
unzip wget openssl curl
|
||||
|
||||
COPY install.sh /install.sh
|
||||
RUN bash /install.sh
|
||||
|
||||
RUN mkdir /var/lib/hm3
|
||||
RUN mkdir /var/lib/hm3/attachments
|
||||
RUN mkdir /var/lib/hm3/users
|
||||
RUN mkdir /var/lib/hm3/app_data
|
||||
RUN chown -R www-data /var/lib/hm3/
|
||||
|
||||
WORKDIR /var/lib/hm3
|
||||
|
||||
CMD ["php", "-S", "0.0.0.0:33144"]
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
#!/bin/bash
|
||||
|
||||
# https://cypht.org/install.html
|
||||
|
||||
# this is where Cypht will be installed
|
||||
DESTINATION="/usr/local/share/cypht"
|
||||
|
||||
# validate the destination directory
|
||||
test -r $DESTINATION -a -x $DESTINATION
|
||||
if [ $? -ne 0 ]; then
|
||||
mkdir $DESTINATION
|
||||
fi
|
||||
|
||||
# create working directory
|
||||
mkdir cypht-temp
|
||||
cd cypht-temp
|
||||
|
||||
# grab latest code
|
||||
wget https://github.com/jasonmunro/cypht/archive/master.zip
|
||||
|
||||
# unpack the archive
|
||||
unzip master.zip
|
||||
|
||||
# run composer
|
||||
cd cypht-master && composer install && cd ..
|
||||
|
||||
# create a vanilla ini file
|
||||
cp cypht-master/hm3.sample.ini cypht-master/hm3.ini
|
||||
|
||||
# fix permissions and ownership
|
||||
find cypht-master -type d -print | xargs chmod 755
|
||||
find cypht-master -type f -print | xargs chmod 644
|
||||
chown -R root:root cypht-master
|
||||
|
||||
# copy to destination folder
|
||||
mv cypht-master/* $DESTINATION
|
||||
|
||||
# remove working directory
|
||||
cd ..
|
||||
rm -rf cypht-temp
|
||||
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
#! /bin/bash
|
||||
|
||||
img="staannoe/mailpile"
|
||||
tag="latest"
|
||||
docker pull $img:$tag
|
||||
|
||||
docker run --rm -it \
|
||||
--name ${img##*/} \
|
||||
-p 8344:33411 \
|
||||
-v $(pwd)/mnt:/root/.local/share/Mailpile \
|
||||
$img:$tag
|
||||
|
|
@ -0,0 +1 @@
|
|||
WINNER WINNER CHICKEN DINNER
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
FROM php:5-apache
|
||||
|
||||
WORKDIR /var/www/rainloop/
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
unzip wget
|
||||
|
||||
RUN wget -qO- https://repository.rainloop.net/installer.php | php \
|
||||
&& find . -type d -exec chmod 755 {} \; \
|
||||
&& find . -type f -exec chmod 644 {} \; \
|
||||
&& chown -R www-data: *
|
||||
|
||||
CMD ["php", "-S", "0.0.0.0:33144"]
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
#! /bin/bash
|
||||
|
||||
docker pull mailu/rainloop:1.6
|
||||
|
||||
docker run --rm -it \
|
||||
--name rainloop \
|
||||
-p 8344:80 \
|
||||
-v $(pwd)/mnt:/data \
|
||||
-e MAX_FILESIZE=500000 \
|
||||
-e MESSAGE_SIZE_LIMIT=500000 \
|
||||
mailu/rainloop:1.6
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
** litearlly proxies webmail. Default frontend, no login to manage logins, stores gmail/ymail/etc creds in cookies and forwards requests.
|
||||
|
||||
not multi account--just log in here rather than webmail
|
||||
|
|
@ -0,0 +1 @@
|
|||
docker build -t rainloop:latest . && docker run --rm -it -p 33144:33144 --name rainloop rainloop:latest
|
||||
Loading…
Reference in New Issue