--- /dev/null
+version: '3.1'
+services:
+ php-fpm:
+ container_name: fluidbook-toolbox-alpha
+ build: /data/toolbox/alpha/.docker/images/php-alpha
+ working_dir: /application
+ hostname: fluidbook-toolbox-alpha
+ environment:
+ TZ: Europe/Paris
+ HOME: /application
+ NODE_PATH: /usr/lib/node_modules
+ volumes:
+ # Files
+ - '/data/toolbox/alpha/:/application/'
+ - '/home/extranet/:/home/extranet/'
+ - '/data/extranet/:/data/extranet/'
+ - '/mnt/:/mnt/'
+ - '/home/extranet/share/:/application/share/'
+ - '/data/toolbox/alpha/storage/:/application/storage/'
+ - '/data/extranet/ftp/:/application/ftp/'
+ - '/mnt/sshfs/godzilla/data/fluidbook/docs/:/application/protected/fluidbookpublication/docs/'
+ - '/data/extranet/www/fluidbook/books/working/:/application/protected/fluidbookpublication/working/'
+ - '/data/extranet/www/fluidbook/books/links/:/application/protected/fluidbookpublication/links/'
+ - '/home/extranet/www/fluidbook/cache/unzip/:/application/storage/fluidbook/cache/unzip/'
+ - '/data/toolbox/protected/fluidbookpublication/cache/:/application/protected/fluidbookpublication/cache/'
+ - '/data/toolbox/protected/fluidbookpublication/pdf/:/application/protected/fluidbookpublication/pdf/'
+ # DEV
+ - '/home/toolbox/www/resources/fluidbookpublication/player/:/application/resources/fluidbookpublication/player/'
+ # Startup
+ - '/data/toolbox/alpha/bin/startup.sh:/usr/bin/startup.sh'
+ # SSH
+ - '/data/toolbox/alpha/.docker/config/ssh/root/:/root/.ssh/'
+ - '/data/toolbox/alpha/.docker/config/ssh/user/:/application/.ssh/'
+ - '/data/toolbox/alpha/.docker/config/ssh/server/:/etc/ssh/'
+ # Rsyslog
+ - '/data/toolbox/alpha/.docker/config/rsyslog/rsyslog.conf:/etc/rsyslog.conf'
+ - '/data/toolbox/alpha/.docker/config/rsyslog/50-default.conf:/etc/rsyslog.d/50-default.conf'
+ # Supervisor
+ - '/data/toolbox/alpha/.docker/config/supervisor/:/etc/supervisor/conf.d/'
+ # Composer
+ - '/data/toolbox/alpha/.docker/config/composer/:/root/.config/composer/'
+ - '/data/toolbox/alpha/.docker/config/composer/:/application/.config/composer/'
+ # NPM
+ - '/data/toolbox/alpha/.docker/config/npm/:/root/.npm/'
+ # GIT
+ - '/data/toolbox/alpha/.docker/config/gitconfig:/root/.gitconfig'
+ - '/data/toolbox/alpha/.docker/config/git/:/root/.config/git/'
+ - '/data/toolbox/alpha/.docker/config/git/:/application/.config/git/'
+ - '/data/toolbox/alpha/.docker/config/gitconfig:/application/.gitconfig'
+ # Monit
+ - '/data/toolbox/alpha/.docker/config/monit/:/etc/monit/'
+ - '/data/toolbox/alpha/.docker/config/monit/id:/var/lib/monit/id'
+ # Sudoers
+ - '/data/toolbox/alpha/.docker/config/sudoers:/etc/sudoers.d/toolbox'
+ # ImageMagick
+ - '/data/toolbox/alpha/.docker/config/imagemagick/policy.xml:/etc/ImageMagick-6/policy.xml'
+ # Passwords
+ - '/data/toolbox/alpha/.docker/config/passwords:/root/passwords'
+ # Cron
+ - '/data/toolbox/alpha/.docker/config/cron/crontab:/etc/crontab'
+ # Rclone
+ - '/data/toolbox/alpha/.docker/config/rclone.conf:/application/.config/rclone/rclone.conf'
+ # PHP
+ - '/data/toolbox/alpha/.docker/config/php/php.ini:/etc/php/8.2/fpm/conf.d/99-overrides.ini'
+ - '/data/toolbox/alpha/.docker/config/php/fpm.conf:/etc/php/8.2/fpm/pool.d/z-overrides.conf'
+ # ENV
+ - '/data/toolbox/alpha/.env.dev:/application/.env'
+ ports:
+ - '58748:8123'
+ - '58749:22'
+ networks:
+ - fluidbook-toolbox-alpha
+ - fluidbook-processfarm
+ privileged: true
+ restart: unless-stopped
+
+ webserver:
+ container_name: fluidbook-toolbox-alpha-httpd
+ build: /data/toolbox/alpha/.docker/images/httpd
+ working_dir: /application
+ volumes:
+ # Files
+ - '/data/toolbox/alpha/:/application/'
+ - '/home/extranet/:/home/extranet/'
+ - '/data/extranet/:/data/extranet/'
+ - '/mnt/:/mnt/'
+ - '/home/extranet/share/:/application/share/'
+ - '/data/toolbox/alpha/storage/:/application/storage/'
+ - '/data/extranet/ftp/:/application/ftp/'
+ - '/mnt/sshfs/godzilla/data/fluidbook/docs/:/application/protected/fluidbookpublication/docs/'
+ - '/data/extranet/www/fluidbook/books/working/:/application/protected/fluidbookpublication/working/'
+ - '/data/extranet/www/fluidbook/books/links/:/application/protected/fluidbookpublication/links/'
+ - '/home/extranet/www/fluidbook/cache/unzip/:/application/storage/fluidbook/cache/unzip/'
+ - '/data/toolbox/protected/fluidbookpublication/cache/:/application/protected/fluidbookpublication/cache/'
+ - '/data/toolbox/protected/fluidbookpublication/pdf/:/application/protected/fluidbookpublication/pdf/'
+ # Config
+ - '/data/toolbox/alpha/.docker/config/httpd/httpd-alpha.conf:/usr/local/apache2/conf/httpd.conf'
+ # External volume
+ - 'sshfsusstorage:/application/usstorage:ro'
+ environment:
+ VIRTUAL_HOST: alpha.toolbox.fluidbook.com
+ LETSENCRYPT_HOST: alpha.toolbox.fluidbook.com
+ networks:
+ - fluidbook-toolbox-alpha
+ restart: unless-stopped
+
+ adminer:
+ image: adminer:latest
+ container_name: fluidbook-toolbox-alpha-adminer
+ restart: unless-stopped
+ volumes:
+ - '/data/toolbox/alpha/.docker/config/adminer/php.ini:/etc/php/7.4/fpm/conf.d/settings.ini'
+ - '/data/toolbox/alpha/.docker/config/adminer/php.ini:/etc/php/7.4/cli/conf.d/settings.ini'
+ environment:
+ ADMINER_DEFAULT_SERVER: fluidbook-toolbox-alpha-mariadb
+ VIRTUAL_HOST: adminer.alpha.toolbox.fluidbook.com
+ LETSENCRYPT_HOST: adminer.alpha.toolbox.fluidbook.com
+ networks:
+ - fluidbook-toolbox-alpha
+
+ mariadb:
+ container_name: fluidbook-toolbox-alpha-mariadb
+ image: 'mariadb'
+ restart: unless-stopped
+ ports:
+ - 12331:3306
+ environment:
+ MARIADB_ROOT_PASSWORD: 9xHw8nyRuphyTvqC
+ MARIADB_DATABASE: fluidbook-toolbox
+ MARIADB_AUTO_UPGRADE: 1
+ volumes:
+ - "./database/plugin:/usr/lib/mysql/plugin/"
+ - "./database/data:/var/lib/mysql"
+ - "./database/dump.sql:/docker-entrypoint-initdb.d/dump.sql"
+ - "/data/toolbox/alpha/.docker/config/mariadb:/etc/mysql/conf.d:z"
+ networks:
+ - fluidbook-toolbox-alpha
+
+ redis:
+ container_name: fluidbook-toolbox-alpha-redis
+ image: redis
+ volumes:
+ - './redis/data:/data'
+ networks:
+ - fluidbook-toolbox-alpha
+ restart: unless-stopped
+
+ mysqlbackup:
+ image: selim13/automysqlbackup
+ container_name: fluidbook-toolbox-alpha-automysqlbackup
+ volumes:
+ - "./database/backup:/backup"
+ restart: unless-stopped
+ environment:
+ USERNAME: root
+ PASSWORD: 9xHw8nyRuphyTvqC
+ DBHOST: fluidbook-toolbox-alpha-mariadb
+ DBEXCLUDE: "performance_schema information_schema"
+ CRON_SCHEDULE: "0 0 * * *"
+ EXTRA_OPTS: "--single-transaction"
+ networks:
+ - fluidbook-toolbox-alpha
+
+networks:
+ fluidbook-toolbox-alpha:
+ external:
+ name: fluidbook-toolbox-alpha
+ fluidbook-processfarm:
+ external:
+ name: fluidbook-processfarm
+
+volumes:
+ sshfsusstorage:
+ driver: ucphhpc/sshfs:latest
+ driver_opts:
+ sshcmd: "fluidbook@kingkong.cubedesigners.com:/home/fluidbook/data"
+ allow_other: ""
+ password: "Qu2E9uq48bBzsqGiZA"
--- /dev/null
+FROM ubuntu:jammy AS cli
+
+WORKDIR "/application"
+
+# Fixes some weird terminal issues such as broken clear / CTRL+L
+ENV TERM=linux
+
+# Ensure apt doesn't ask questions when installing stuff
+ENV DEBIAN_FRONTEND=noninteractive
+
+# Compile NSISbi
+RUN apt update && apt -y --no-install-recommends install build-essential scons mingw-w64 zlib1g-dev curl unzip ca-certificates wget gnupg
+RUN cd /root && curl -L https://master.dl.sourceforge.net/project/nsisbi/nsisbi3.08.1/nsis-code-7336-1-NSIS-trunk.zip -o /root/nsis.zip && unzip -o /root/nsis.zip && cd /root/nsis-code-7336-1-NSIS-trunk && scons SKIPUTILS="zip2exe","NSIS Menu" && scons install SKIPUTILS="zip2exe","NSIS Menu"
+
+# Add additional repositories
+RUN curl -fsSL https://deb.nodesource.com/setup_19.x | bash -
+RUN sh -c 'echo "deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list'
+RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
+RUN echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu jammy main" > /etc/apt/sources.list.d/ondrej-php.list \
+ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C
+
+RUN apt update && apt -y --no-install-recommends install \
+ git git-restore-mtime \
+ php8.2-fpm \
+ php8.2-apcu \
+ php8.2-cli \
+ php8.2-curl \
+ php8.2-mbstring \
+ php8.2-opcache \
+ php8.2-readline \
+ php8.2-xml \
+ php8.2-zip \
+ php8.2-bz2 \
+ php8.2-gd \
+ php8.2-igbinary \
+ php8.2-imap \
+ php8.2-imagick \
+ php8.2-intl \
+ php8.2-memcached \
+ php8.2-mysql \
+ php8.2-redis \
+ php8.2-soap \
+ php8.2-ssh2 \
+ php8.2-tidy \
+ php8.2-xsl \
+ php8.2-curl \
+ php8.2-mcrypt \
+ php8.2-bcmath \
+ less nano wget bash lynx
+
+COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
+STOPSIGNAL SIGQUIT
+
+# Toolbox
+RUN apt -y --no-install-recommends install nodejs google-chrome-stable
+RUN apt -y --no-install-recommends install sudo
+RUN apt -y --no-install-recommends install supervisor ssh rsync
+RUN apt update && apt -y --no-install-recommends install default-jre pdftk poppler-utils inkscape mupdf-tools ghostscript imagemagick netpbm libjpeg-turbo8 libjpeg-turbo-progs
+RUN apt -y --no-install-recommends install zip unzip gzip 7zip
+RUN apt -y --no-install-recommends install icoutils fontforge icnsutils
+RUN apt -y --no-install-recommends install ffmpeg python3 lame x264 vorbis-tools
+RUN apt -y --no-install-recommends install inkscape mupdf-tools librsvg2-bin
+RUN apt -y --no-install-recommends install cron monit locate telnet
+RUN apt -y --no-install-recommends install mariadb-client
+RUN apt -y --no-install-recommends install build-essential chrpath libssl-dev libxft-dev libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev
+RUN apt -y --no-install-recommends install libreoffice
+RUN apt -y --no-install-recommends install lftp rclone
+RUN apt -y --no-install-recommends install sshfs python3 python3-pip
+RUN apt -y --no-install-recommends install openssh-server rsyslog
+RUN apt -y --no-install-recommends install wine libwine wine64
+RUN apt -y --no-install-recommends install pdfposter rename
+RUN apt -y --no-install-recommends install jdupes
+
+RUN apt -y --no-install-recommends install locales
+RUN sed -i '/fr_FR.UTF-8/s/^# //g' /etc/locale.gen && \
+ locale-gen
+ENV LANG fr_FR.UTF-8
+ENV LANGUAGE fr_FR:fr
+ENV LC_ALL fr_FR.UTF-8
+
+RUN cd /root;wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2;tar xvjf phantomjs-2.1.1-linux-x86_64.tar.bz2;mv phantomjs-2.1.1-linux-x86_64 /usr/local/share;ln -sf /usr/local/share/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin
+RUN cd /root;wget https://github.com/RazrFalcon/svgcleaner/releases/download/v0.9.5/svgcleaner_linux_x86_64_0.9.5.tar.gz; tar xvzf svgcleaner_linux_x86_64_0.9.5.tar.gz;mv svgcleaner /usr/local/bin
+
+RUN curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp && chmod 755 /usr/local/bin/yt-dlp
+
+RUN apt clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
+
+ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true
+RUN npm install --unsafe-perm --global uglify-js less sass puppeteer favicons crx3 oslllo-svg-fixer terser npm-check-updates nw-builder@^4
+RUN pip3 install font-line
+
+RUN groupadd sudo;useradd -d /application -g 33 -G sudo -s /bin/bash -u 1001 toolbox
+
+CMD exec /usr/bin/startup.sh
+
+# Open up fcgi port
+EXPOSE 9000
+EXPOSE 8123