commit 9bd12ec585797b8cd941c98d1f1507bd972f3399 Author: Luca Gambarotto Date: Sun Jan 14 10:38:12 2024 +0100 Added bokstack, gitea, komga and nextcloud diff --git a/bookstack/docker-compose.yaml b/bookstack/docker-compose.yaml new file mode 100644 index 0000000..f9abca9 --- /dev/null +++ b/bookstack/docker-compose.yaml @@ -0,0 +1,37 @@ +version: '2' +services: + mysql: + image: mysql:8.2 + environment: + - MYSQL_ROOT_PASSWORD=6huKD2kmkWac1EGyBTHc + - MYSQL_DATABASE=bookstack + - MYSQL_USER=bookstack + - MYSQL_PASSWORD=6huKD2kmkWac1EGyBTHc + volumes: + - /mnt/bookstack/mysql-data:/var/lib/mysql + + bookstack: + image: solidnerd/bookstack:23.12 + depends_on: + - mysql + environment: + - DB_HOST=mysql:3306 + - DB_DATABASE=bookstack + - DB_USERNAME=bookstack + - DB_PASSWORD=6huKD2kmkWac1EGyBTHc + #set the APP_ to the URL of bookstack without without a trailing slash APP_URL=https://example.com + - APP_URL=https://bookstack.giovanesaggio.com + # APP_KEY is used for encryption where needed, so needs to be persisted to + # preserve decryption abilities. + # Can run `php artisan key:generate` to generate a key + - APP_KEY=6huKD2kmkWac1EGyBTHc + volumes: + - /mnt/bookstack/uploads:/var/www/bookstack/public/uploads + - /mnt/bookstack/storage-uploads:/var/www/bookstack/storage/uploads + ports: + - "8080:8080" + +volumes: + mysql-data: + uploads: + storage-uploads: \ No newline at end of file diff --git a/bookstack/install_docker.bash b/bookstack/install_docker.bash new file mode 100644 index 0000000..abfba3c --- /dev/null +++ b/bookstack/install_docker.bash @@ -0,0 +1,17 @@ +#!/bin/bash + +# Add Docker's official GPG key: +sudo apt-get update +sudo apt-get install ca-certificates curl gnupg +sudo install -m 0755 -d /etc/apt/keyrings +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg +sudo chmod a+r /etc/apt/keyrings/docker.gpg + +# Add the repository to Apt sources: +echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +sudo apt-get update + +sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin \ No newline at end of file diff --git a/bookstack/readme.txt b/bookstack/readme.txt new file mode 100644 index 0000000..8fe6216 --- /dev/null +++ b/bookstack/readme.txt @@ -0,0 +1,18 @@ +MOUNT FOLDER SHARED WITH THE HOST + +# data folder on the host machine +/mnt/raiddisk/bookstack +chown www-data:www-data bookstack + +# in lxc container configuration file +/etc/pve/lxc/.conf + +mp0: /mnt/raiddisk/bookstack,mp=/mnt/bookstack,replicate=0 +lxc.idmap: u 0 100000 1 +lxc.idmap: g 0 100000 1 +lxc.idmap: u 1 33 1 +lxc.idmap: g 1 33 1 +lxc.idmap: u 2 100002 65533 +lxc.idmap: g 2 100002 65533 + + diff --git a/gitea/docker-compose.yaml b/gitea/docker-compose.yaml new file mode 100644 index 0000000..3680f1e --- /dev/null +++ b/gitea/docker-compose.yaml @@ -0,0 +1,43 @@ +version: "3" + +networks: + gitea: + external: false + +services: + server: + image: gitea/gitea:1.21.3 + container_name: gitea + environment: + - USER_UID=1000 + - USER_GID=1000 + - GITEA__database__DB_TYPE=mysql + - GITEA__database__HOST=db:3306 + - GITEA__database__NAME=gitea + - GITEA__database__USER=gitea + - GITEA__database__PASSWD=gitea + restart: always + networks: + - gitea + volumes: + - /mnt/gitea/data:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - "3000:3000" + - "222:22" + depends_on: + - db + + db: + image: mysql:8 + restart: always + environment: + - MYSQL_ROOT_PASSWORD=gitea + - MYSQL_USER=gitea + - MYSQL_PASSWORD=gitea + - MYSQL_DATABASE=gitea + networks: + - gitea + volumes: + - /mnt/gitea/mysql:/var/lib/mysql \ No newline at end of file diff --git a/komga/docker-compose.yaml b/komga/docker-compose.yaml new file mode 100644 index 0000000..1bd483e --- /dev/null +++ b/komga/docker-compose.yaml @@ -0,0 +1,23 @@ +--- +version: '3.3' +services: + komga: + image: gotson/komga + container_name: komga + volumes: + - type: bind + source: /mnt/komga/config + target: /config + - type: bind + source: /mnt/komga/data + target: /data + - type: bind + source: /etc/timezone #alternatively you can use a TZ environment variable, like TZ=Europe/London + target: /etc/timezone + read_only: true + ports: + - 25600:25600 + environment: + - JAVA_TOOL_OPTIONS=-Xmx4g + user: "1000:1000" + restart: unless-stopped \ No newline at end of file diff --git a/nextcloud/Dockerfile b/nextcloud/Dockerfile new file mode 100644 index 0000000..ca9733a --- /dev/null +++ b/nextcloud/Dockerfile @@ -0,0 +1,22 @@ +FROM nextcloud:latest + +# Install additional PHP modules using pecl and avconv or ffmpeg +RUN set -eux; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + $PHPIZE_DEPS \ + autoconf \ + imagemagick \ + ffmpeg \ + libbz2-dev \ + libsmbclient-dev \ + ; \ + \ + pecl install smbclient redis imagick; \ + docker-php-ext-enable smbclient redis imagick; \ + \ + docker-php-ext-install bz2 \ + ; \ + apt-get purge -y --auto-remove $PHPIZE_DEPS; \ + rm -rf /var/lib/apt/lists/* \ No newline at end of file diff --git a/nextcloud/docker-compose.yaml b/nextcloud/docker-compose.yaml new file mode 100644 index 0000000..2cfa85b --- /dev/null +++ b/nextcloud/docker-compose.yaml @@ -0,0 +1,55 @@ +version: '3.7' + +services: + nextcloud: + build: + context: . + dockerfile: Dockerfile + container_name: nextcloud + restart: always + ports: + - "8080:80" + depends_on: + - db + - redis + environment: + - MYSQL_HOST=db + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + - MYSQL_PASSWORD=BN3UX1wCll6uAEzTfIk2 + - NEXTCLOUD_ADMIN_USER=admin + - NEXTCLOUD_ADMIN_PASSWORD=J0CBk3SGWj792QNMC2JO + - NEXTCLOUD_TRUSTED_DOMAINS=cloud.giovanesaggio.com 10.0.0.75 + - NEXTCLOUD_TRUSTED_PROXIES=10.0.0.54 + - OVERWRITEPROTOCOL=https + - OVERWRITE_CLI_URL=https://cloud.giovanesaggio.com + - FORWARDED_FOR_HEADERS=HTTP_X_FORWARDED,HTTP_FORWARDED_FOR + - REDIS_HOST=redis + volumes: + - /mnt/nextcloud/nextcloud:/var/www/html + + db: + image: mariadb:10.5 + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - /mnt/nextcloud/db_data:/var/lib/mysql + environment: + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + - MYSQL_ROOT_PASSWORD=BN3UX1wCll6uAEzTfIk2 + - MYSQL_PASSWORD=BN3UX1wCll6uAEzTfIk2 + expose: + - 3306 + + redis: + image: redis:alpine + container_name: redis + restart: always + volumes: + - /mnt/nextcloud/redis:/data + +volumes: + nextcloud: + db_data: + redis: \ No newline at end of file diff --git a/nextcloud/install_docker.bash b/nextcloud/install_docker.bash new file mode 100644 index 0000000..cdf55c5 --- /dev/null +++ b/nextcloud/install_docker.bash @@ -0,0 +1,14 @@ +#!/bin/bash + +sudo apt-get update +sudo apt-get install ca-certificates curl gnupg +sudo install -m 0755 -d /etc/apt/keyrings +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg +sudo chmod a+r /etc/apt/keyrings/docker.gpg +echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +sudo apt-get update + +sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin \ No newline at end of file diff --git a/nextcloud/readme.txt b/nextcloud/readme.txt new file mode 100644 index 0000000..c5609f0 --- /dev/null +++ b/nextcloud/readme.txt @@ -0,0 +1,31 @@ +MOUNT FOLDER SHARED WITH THE HOST + +# data folder on the host machine +/mnt/raiddisk/nextcloud +chown www-data:www-data nextcloud + +# in lxc container configuration file +/etc/pve/lxc/.conf + +mp0: /mnt/raiddisk/nextcloud,mp=var/lib/docker/volumes,replicate=0 +lxc.idmap: u 1 100000 32 +lxc.idmap: g 1 100000 32 +lxc.idmap: u 0 33 1 +lxc.idmap: g 0 33 1 +lxc.idmap: u 34 100034 65502 +lxc.idmap: g 34 100034 65502 + + + +POST INSTALL COMMANDS + +docker compose exec --user www-data nextcloud php occ config:system:set default_phone_region --value="IT" + + + +lxc.idmap: u 0 100000 1 +lxc.idmap: g 0 100000 1 +lxc.idmap: u 1 33 1 +lxc.idmap: g 1 33 1 +lxc.idmap: u 2 100002 65533 +lxc.idmap: g 2 100002 65533 \ No newline at end of file