Commit 724fdbfc authored by cupric's avatar cupric
Browse files

init

parents
Showing with 234 additions and 0 deletions
+234 -0
Dockerfile 0 → 100644
FROM php:7.1-apache-stretch
ENV BOOKSTACK=BookStack \
BOOKSTACK_VERSION=0.23.2 \
BOOKSTACK_HOME="/var/www/bookstack"
RUN apt-get update && apt-get install -y git zlib1g-dev libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng12-dev wget libldap2-dev libtidy-dev \
&& docker-php-ext-install pdo pdo_mysql mbstring zip tidy \
&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install ldap \
&& docker-php-ext-configure gd --with-freetype-dir=usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install gd \
&& cd /var/www && curl -sS https://getcomposer.org/installer | php \
&& mv /var/www/composer.phar /usr/local/bin/composer \
&& wget https://github.com/ssddanbrown/BookStack/archive/v${BOOKSTACK_VERSION}.tar.gz -O ${BOOKSTACK}.tar.gz \
&& tar -xf ${BOOKSTACK}.tar.gz && mv BookStack-${BOOKSTACK_VERSION} ${BOOKSTACK_HOME} && rm ${BOOKSTACK}.tar.gz \
&& cd $BOOKSTACK_HOME && composer install \
&& chown -R www-data:www-data $BOOKSTACK_HOME \
&& apt-get -y autoremove \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /var/tmp/* /etc/apache2/sites-enabled/000-*.conf
COPY php.ini /usr/local/etc/php/php.ini
COPY bookstack.conf /etc/apache2/sites-enabled/bookstack.conf
COPY bookstack.ssl.conf /etc/apache2/sites-enabled/bookstack.ssl.conf
RUN a2enmod rewrite
RUN a2enmod ssl
COPY docker-entrypoint.sh /
WORKDIR $BOOKSTACK_HOME
EXPOSE 80
EXPOSE 443
VOLUME ["$BOOKSTACK_HOME/public/uploads","$BOOKSTACK_HOME/public/storage"]
ENTRYPOINT ["/docker-entrypoint.sh"]
ARG BUILD_DATE
ARG VCS_REF
LABEL org.label-schema.build-date=$BUILD_DATE \
org.label-schema.docker.dockerfile="/Dockerfile" \
org.label-schema.license="MIT" \
org.label-schema.name="bookstack" \
org.label-schema.vendor="solidnerd" \
org.label-schema.url="https://github.com/solidnerd/docker-bookstack/" \
org.label-schema.vcs-ref=$VCS_REF \
org.label-schema.vcs-url="https://github.com/solidnerd/docker-bookstack.git" \
org.label-schema.vcs-type="Git"
docker-bookstack
backup.tar 0 → 100644
File added
<VirtualHost *:80>
ServerName kb.edgepower.com
Redirect / https://kb.edgepower.com
</VirtualHost>
<VirtualHost *:443>
ServerName kb.edgepower.com
DocumentRoot "/var/www/bookstack/public/"
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/kb.edgepower.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/kb.edgepower.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/kb.edgepower.com/chain.pem
<Directory "/var/www/bookstack/">
Options FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
version: '2'
services:
mysql:
image: mysql:5.7.20
environment:
- MYSQL_ROOT_PASSWORD=secret
- MYSQL_DATABASE=bookstack
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=secret
volumes:
- mysql-data:/var/lib/mysql
bookstack:
image: ce6a4632c30a
depends_on:
- mysql
environment:
- DB_HOST=mysql:3306
- DB_DATABASE=bookstack
- DB_USERNAME=bookstack
- DB_PASSWORD=secret
- GOOGLE_APP_ID=611333768376-d6m55iik4nn47nfcpc4l1qelu5roqblb.apps.googleusercontent.com
- GOOGLE_APP_SECRET=_cwxA-kbxEC7cBaGkfHWDTE2
- APP_URL=https://kb.edgepower.com
volumes:
- uploads:/var/www/bookstack/public/uploads
- storage-uploads:/var/www/bookstack/public/storage
- /etc/letsencrypt/live/kb.edgepower.com:/etc/letsencrypt/live/kb.edgepower.com
- /etc/letsencrypt/archive/kb.edgepower.com:/etc/letsencrypt/archive/kb.edgepower.com
ports:
- "80:80"
- "443:443"
volumes:
mysql-data:
uploads:
storage-uploads:
#!/bin/bash
set -e
echoerr() { echo "$@" 1>&2; }
# Split out host and port from DB_HOST env variable
IFS=":" read -r DB_HOST_NAME DB_PORT <<< "$DB_HOST"
DB_PORT=${DB_PORT:-3306}
if [ ! -f "$BOOKSTACK_HOME/.env" ]; then
if [[ "${DB_HOST}" ]]; then
cat > "$BOOKSTACK_HOME/.env" <<EOF
# Environment
APP_ENV=production
APP_DEBUG=${APP_DEBUG:-false}
APP_KEY=${APP_KEY:-SomeRandomStringWith32Characters}
# The below url has to be set if using social auth options
# or if you are not using BookStack at the root path of your domain.
APP_URL=${APP_URL:-null}
# Database details
DB_HOST=${DB_HOST:-localhost}
DB_DATABASE=${DB_DATABASE:-bookstack}
DB_USERNAME=${DB_USERNAME:-bookstack}
DB_PASSWORD=${DB_PASSWORD:-password}
# Cache and session
CACHE_DRIVER=file
SESSION_DRIVER=file
# If using Memcached, comment the above and uncomment these
#CACHE_DRIVER=memcached
#SESSION_DRIVER=memcached
QUEUE_DRIVER=sync
# Memcached settings
# If using a UNIX socket path for the host, set the port to 0
# This follows the following format: HOST:PORT:WEIGHT
# For multiple servers separate with a comma
MEMCACHED_SERVERS=127.0.0.1:11211:100
# Storage
STORAGE_TYPE=${STORAGE_TYPE:-local}
# Amazon S3 Config
STORAGE_S3_KEY=${STORAGE_S3_KEY:-false}
STORAGE_S3_SECRET=${STORAGE_S3_SECRET:-false}
STORAGE_S3_REGION=${STORAGE_S3_REGION:-false}
STORAGE_S3_BUCKET=${STORAGE_S3_BUCKET:-false}
# Storage URL
# Used to prefix image urls for when using custom domains/cdns
STORAGE_URL=${STORAGE_URL:-false}
# General auth
AUTH_METHOD=${AUTH_METHOD:-standard}
# Social Authentication information. Defaults as off.
GITHUB_APP_ID=${GITHUB_APP_ID:-false}
GITHUB_APP_SECRET=${GITHUB_APP_SECRET:-false}
GOOGLE_APP_ID=${GOOGLE_APP_ID:-false}
GOOGLE_APP_SECRET=${GOOGLE_APP_SECRET:-false}
# External services such as Gravatar
DISABLE_EXTERNAL_SERVICES=${DISABLE_EXTERNAL_SERVICES:-false}
# LDAP Settings
LDAP_SERVER=${LDAP_SERVER:-false}
LDAP_BASE_DN=${LDAP_BASE_DN:-false}
LDAP_DN=${LDAP_DN:-false}
LDAP_PASS=${LDAP_PASS:-false}
LDAP_USER_FILTER=${LDAP_USER_FILTER:-false}
LDAP_VERSION=${LDAP_VERSION:-false}
# Mail settings
MAIL_DRIVER=${MAIL_DRIVER:-smtp}
MAIL_HOST=${MAIL_HOST:-localhost}
MAIL_PORT=${MAIL_PORT:-1025}
MAIL_USERNAME=${MAIL_USERNAME:-null}
MAIL_PASSWORD=${MAIL_PASSWORD:-null}
MAIL_ENCRYPTION=${MAIL_ENCRYPTION:-null}
# URL used for social login redirects, NO TRAILING SLASH
EOF
sed -ie "s/single/errorlog/g" config/app.php
else
echo >&2 'error: missing DB_HOST environment variable'
exit 1
fi
fi
echoerr wait-for-db: waiting for ${DB_HOST_NAME}:${DB_PORT}
timeout 15 bash <<EOT
while ! (echo > /dev/tcp/${DB_HOST_NAME}/${DB_PORT}) >/dev/null 2>&1;
do sleep 1;
done;
EOT
RESULT=$?
if [ $RESULT -eq 0 ]; then
# sleep another second for so that we don't get a "the database system is starting up" error
sleep 1
echoerr wait-for-db: done
else
echoerr wait-for-db: timeout out after 15 seconds waiting for ${DB_HOST_NAME}:${DB_PORT}
fi
composer install
php artisan key:generate
php artisan migrate --force
echo "Setting folder permissions for uploads"
chown -R www-data:www-data public/uploads && chmod -R 775 public/uploads
chown -R www-data:www-data storage/uploads && chmod -R 775 storage/uploads
php artisan cache:clear
php artisan view:clear
exec apache2-foreground
php.ini 0 → 100644
[PHP]
post_max_size = 100M
upload_max_filesize = 100M
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment